/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.security.group;
import com.enonic.cms.core.security.user.UserEntity;
import com.enonic.cms.core.security.userstore.UserStoreEntity;
public interface GroupAccessResolver
{
boolean hasReadGroupAccess( UserEntity reader, GroupEntity group );
boolean hasCreateGroupAccess( UserEntity executor, GroupType userstoreGroup, UserStoreEntity userStore );
boolean hasDeleteGroupAccess( UserEntity executor, GroupEntity group );
boolean hasUpdateGroupAccess( UserEntity executor, GroupEntity subject );
boolean hasAddMembershipAccess( UserEntity executor, GroupEntity groupToAdd, GroupEntity groupToAddTo );
boolean hasRemoveMembershipAccess( UserEntity executor, GroupEntity groupToRemove, GroupEntity groupToRemoveFrom );
}