Fórumok

Deactivate user in liferay programmetically

thumbnail
Mreetunjay Sharma, módosítva 9 év-val korábban

Deactivate user in liferay programmetically

Junior Member Bejegyzések: 29 Csatlakozás dátuma: 2013.05.20. Legújabb bejegyzések
Hello Everybody,
I have dectivate user in liferay programmetically like:

User user = UserLocalServiceUtil.getUserByEmailAddress(companyId, emailAdd);
user.setStatus(WorkflowConstants.STATUS_INACTIVE);

but when i see user list in Control Panel->Users and Organizations, User is stil showing and he also able to do login in liferay poratl.

so, is there any other way to deactivate user show that user can not be seen in Control Panel->Users and Organizations, and also not able to do login.

Thanks & Regards,
Mreetunjay Sharma
thumbnail
Jitendra Rajput, módosítva 9 év-val korábban

RE: Deactivate user in liferay programmetically

Liferay Master Bejegyzések: 875 Csatlakozás dátuma: 2011.01.07. Legújabb bejegyzések
Even in OOB you will see same way they are deactivating user. Please cross check.


				if (cmd.equals(Constants.DEACTIVATE)) {
					status = WorkflowConstants.STATUS_INACTIVE;
				}

				UserServiceUtil.updateStatus(deleteUserId, status);


HTH,
Jitendra
http://itsliferay.blogspot.in/
thumbnail
Mreetunjay Sharma, módosítva 9 év-val korábban

RE: Deactivate user in liferay programmetically

Junior Member Bejegyzések: 29 Csatlakozás dátuma: 2013.05.20. Legújabb bejegyzések
Thanks Jitendra for your reply.
will You please tell me what is cmd, and how can I get cmd ?

shall I get it like :
String cmd = ParamUtil.getString(actionRequest, Constants.CMD);

any other way to delete users in liferay ??
thumbnail
Pankaj Kathiriya, módosítva 9 év-val korábban

RE: Deactivate user in liferay programmetically

Liferay Master Bejegyzések: 722 Csatlakozás dátuma: 2010.08.05. Legújabb bejegyzések
Well, cmd is parameter passed to controller, it can be add,update,delete,deactivate.

To delete the user you can call method UserServiceUtil.deleteUser(userId);
For Deactivate user refer to code given by Jitendra
thumbnail
Mreetunjay Sharma, módosítva 9 év-val korábban

RE: Deactivate user in liferay programmetically

Junior Member Bejegyzések: 29 Csatlakozás dátuma: 2013.05.20. Legújabb bejegyzések
Thank pankaj,

I have done like this

ThemeDisplay themeDisplay=(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
long companyId=themeDisplay.getCompanyId();
User usr = UserLocalServiceUtil.getUserByEmailAddress(companyId, email);
UserServiceUtil.deleteUser(usr.getUserId());

but I am getting exception like :
com.liferay.portal.security.auth.PrincipalException
thumbnail
Sushil Patidar, módosítva 9 év-val korábban

RE: Deactivate user in liferay programmetically

Expert Bejegyzések: 467 Csatlakozás dátuma: 2011.10.31. Legújabb bejegyzések
Mreetunjay Sharma:
Thank pankaj,

I have done like this

ThemeDisplay themeDisplay=(ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
long companyId=themeDisplay.getCompanyId();
User usr = UserLocalServiceUtil.getUserByEmailAddress(companyId, email);
UserServiceUtil.deleteUser(usr.getUserId());

but I am getting exception like :
com.liferay.portal.security.auth.PrincipalException



It seems the current user don't have permission to delete user .

Regards
thumbnail
Jitendra Rajput, módosítva 9 év-val korábban

RE: Deactivate user in liferay programmetically

Liferay Master Bejegyzések: 875 Csatlakozás dátuma: 2011.01.07. Legújabb bejegyzések
No No .. I just copied that code from EditUserAction to give you understanding.

You should only follow 2 lines to deactivate user.


User user = UserLocalServiceUtil.getUserByEmailAddress(companyId, emailAdd);
status = WorkflowConstants.STATUS_INACTIVE;
 UserServiceUtil.updateStatus(user.getUserId(), status);


HTH,
Jitendra
http://itsliferay.blogspot.in/
thumbnail
Mreetunjay Sharma, módosítva 9 év-val korábban

RE: Deactivate user in liferay programmetically

Junior Member Bejegyzések: 29 Csatlakozás dátuma: 2013.05.20. Legújabb bejegyzések
Jitendra,

I have already done like this but I am not sure whether users are being inactive or not. Because users are able to do login.

I think once user will be inactive then can't do login..
thumbnail
Pankaj Kathiriya, módosítva 9 év-val korábban

RE: Deactivate user in liferay programmetically

Liferay Master Bejegyzések: 722 Csatlakozás dátuma: 2010.08.05. Legújabb bejegyzések
After deactivation user can do login, but can not see any content. User will be given message[your account is deactivated something like this] instead.
thumbnail
Mreetunjay Sharma, módosítva 9 év-val korábban

RE: Deactivate user in liferay programmetically

Junior Member Bejegyzések: 29 Csatlakozás dátuma: 2013.05.20. Legújabb bejegyzések
And If I want to delete user from portal(liferay database) permanently then what I nee to do ??
thumbnail
Pankaj Kathiriya, módosítva 9 év-val korábban

RE: Deactivate user in liferay programmetically

Liferay Master Bejegyzések: 722 Csatlakozás dátuma: 2010.08.05. Legújabb bejegyzések
UserLocalServiceUtil.deleteUser(userId);
will work.
thumbnail
I-A Kotopoulos, módosítva 8 év-val korábban

RE: Deactivate user in liferay programmetically

Junior Member Bejegyzések: 44 Csatlakozás dátuma: 2014.01.14. Legújabb bejegyzések
Pankaj Kathiriya:
UserLocalServiceUtil.deleteUser(userId);
will work.


After using this the user still remains in the database table. Is there any difference between UserLocalServiceUtil.deleteUser(Long); and UserLocalServiceUtil.deleteUser(User); ?