]
Peter Palaga commented on GTNPORTAL-3285:
-----------------------------------------
I am not sure what the last sentence of the previous comment means for the linked pull
request. It means that the PR is unnecessary, right? Could you please comment and close
the PR if so?
Logic of deleting user is not proper
------------------------------------
Key: GTNPORTAL-3285
URL:
https://issues.jboss.org/browse/GTNPORTAL-3285
Project: GateIn Portal
Issue Type: Feature Request
Security Level: Public(Everyone can see)
Reporter: Tuyen Nguyen The
Assignee: Tuyen Nguyen The
I try to add a listener to not allow delete Platform users. for example:
{code}
public class IntranetUserEventListenerImpl extends UserEventListener {
@Override
public void preDelete(User user) throws Exception {
//don't allow delete user
throw new MessageException(new
ApplicationMessage("IntranetUserEventListener.msg.delete-user-read-only-mode-error",
null, ApplicationMessage.WARNING));
}
{code}
This listener can help to not allow delete user, but all memberships of user still are
deleted.
Check logic of deleting users (in file
https://github.com/exoplatform/gatein-portal/blob/3.5.x-PLF/component/ide...):
we can see it deletes all membershis of an user before broadcast event
"preDelete"
{code}
public User removeUser(String userName, boolean broadcast) throws Exception {
//...
try {
// Remove all memberships and profile first
orgService.getMembershipHandler().removeMembershipByUser(userName, false);
orgService.getUserProfileHandler().removeUserProfile(userName, false);
} catch (Exception e) {
handleException("Cannot cleanup user relationships: " + userName +
"; ", e);
}
User exoUser = getPopulatedUser(userName, session);
if (broadcast) {
preDelete(exoUser);
}
try {
session.getPersistenceManager().removeUser(foundUser, true);
} catch (IdentityException e) {
handleException("Cannot remove user: " + userName + "; ",
e);
}
//...
}
{code}
Expectation:
1) broadcast preDelete(exoUser) should be run before delete anything
2) Delete user and its membership should be run in one transaction
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: