CCM NG/ccm-core: Completed code for CcmRevisionListener

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4587 8810af33-2d31-482b-a856-94f89814c4df
jensp 2017-02-21 14:24:01 +00:00
parent 251c2efb7a
commit 6b5e54ee1f
1 changed files with 13 additions and 8 deletions

View File

@ -18,7 +18,11 @@
*/
package org.libreccm.auditing;
import java.util.Optional;
import org.hibernate.envers.RevisionListener;
import org.libreccm.cdi.utils.CdiUtil;
import org.libreccm.security.Shiro;
import org.libreccm.security.User;
/**
@ -30,20 +34,21 @@ public class CcmRevisionListener implements RevisionListener {
@Override
public void newRevision(final Object revisionEntity) {
if (!(revisionEntity instanceof CcmRevision)) {
throw new IllegalArgumentException(String.format(
"Provided revision entity is not an instance of class \"%s\".",
CcmRevision.class.getName()));
}
// final CcmRevision revision = (CcmRevision) revisionEntity;
//ToDo: Add code using Shiro Subject
final CcmRevision revision = (CcmRevision) revisionEntity;
// final Subject subject = sessionContext.getCurrentSubject();
// if (subject instanceof User) {
// final User user = (User) subject;
// revision.setUserName(user.getScreenName());
// }
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
final Shiro shiro = cdiUtil.findBean(Shiro.class);
final Optional<User> user = shiro.getUser();
if (user.isPresent()) {
revision.setUserName(user.get().getName());
}
}
}