package org.nightlabs.jfire.entityuserset.ui;
import java.util.Set;
import org.nightlabs.jdo.NLJDOHelper;
import org.nightlabs.jfire.entityuserset.EntityUserSetController;
import org.nightlabs.jfire.security.AuthorizedObject;
import org.nightlabs.jfire.security.UserSecurityGroup;
import org.nightlabs.jfire.security.dao.AuthorizedObjectDAO;
import org.nightlabs.jfire.security.id.AuthorizedObjectID;
import org.nightlabs.jfire.security.id.UserSecurityGroupID;
import org.nightlabs.progress.NullProgressMonitor;
/**
* @author Daniel Mazurek - Daniel.Mazurek [dot] nightlabs [dot] de
*
*/
public class EntityUserSetControllerClientImpl extends EntityUserSetController
{
private static final String[] FETCH_GROUPS = new String[] {AuthorizedObject.FETCH_GROUP_NAME, AuthorizedObject.FETCH_GROUP_DESCRIPTION, UserSecurityGroup.FETCH_GROUP_MEMBERS};
/* (non-Javadoc)
* @see org.nightlabs.jfire.entityuserset.EntityUserSetController#getUserSecurityGroupMemberIDs(org.nightlabs.jfire.security.id.AuthorizedObjectID)
*/
@Override
public Set<AuthorizedObjectID> getUserSecurityGroupMemberIDs(AuthorizedObjectID authorizedObjectID)
{
if (!(authorizedObjectID instanceof UserSecurityGroupID)) {
return null;
}
AuthorizedObject authorizedObject = AuthorizedObjectDAO.sharedInstance().getAuthorizedObject(authorizedObjectID, FETCH_GROUPS,
NLJDOHelper.MAX_FETCH_DEPTH_NO_LIMIT, new NullProgressMonitor());
UserSecurityGroup userSecurityGroup = (UserSecurityGroup) authorizedObject;
Set<AuthorizedObject> members = userSecurityGroup.getMembers();
return NLJDOHelper.getObjectIDSet(members);
}
}