package com.plexobject.rbac.repository; import java.util.Collection; import com.plexobject.rbac.domain.Permission; import com.plexobject.rbac.domain.Role; import com.plexobject.rbac.domain.Subject; /** * This class allows management of domains and mapping of subjects, roles and * permissions. * * */ public interface SecurityMappingRepository { /** * Add given roles to the subject and save them * * @param subject * @param roles * @return role-names for given subject */ Collection<Role> addRolesToSubject(String subject, Collection<String> roles); /** * Add given roles to the subject and save them * * @param subject * @param roles * @return role-names for given subject */ Collection<Role> addRolesToSubject(Subject subject, Collection<Role> roles); /** * Add given roles to the subject and save them * * @param subject * @param roles * @return role-names for given subject */ Collection<Role> addRolesToSubject(Subject subject, Role... roles); /** * Remove given roles to the subject and save them * * @param subject * @param roles * @return role-names for given subject */ Collection<Role> removeRolesToSubject(String subject, Collection<String> roles); /** * Remove given roles to the subject and save them * * @param subject * @param roles * @return role-names for given subject */ Collection<Role> removeRolesToSubject(Subject subject, Collection<Role> roles); /** * Remove given roles to the subject and save them * * @param subject * @param roles * @return role-names for given subject */ Collection<Role> removeRolesToSubject(Subject subject, Role... roles); /** * Adds permissions to given role * * @param role * @param permissions * @return permission-ids for given role */ Collection<Permission> addPermissionsToRole(String role, Collection<Integer> permissionsIds); /** * Adds permissions to given role * * @param role * @param permissions * @return permission-ids for given role */ Collection<Permission> addPermissionsToRole(Role role, Collection<Permission> permissions); /** * Adds permissions to given role * * @param role * @param permissions * @return permission-ids for given role */ Collection<Permission> addPermissionsToRole(Role role, Permission... permissions); /** * Removes permissions from given role * * @param role * @param permissions * @return permission-ids for given role */ Collection<Permission> removePermissionsToRole(String role, Collection<Integer> permissionsIds); /** * Removes permissions from given role * * @param role * @param permissions * @return permission-ids for given role */ Collection<Permission> removePermissionsToRole(Role role, Collection<Permission> permissions); /** * Removes permissions from given role * * @param role * @param permissions * @return permission-ids for given role */ Collection<Permission> removePermissionsToRole(Role role, Permission... permissions); /** * Checks if subject has given role * * @param subjectName * @param rolename * @return */ boolean isSubjectInRole(String subjectName, String rolename); }