package com.ctrip.framework.apollo.portal.service;
import com.ctrip.framework.apollo.portal.entity.bo.UserInfo;
import com.ctrip.framework.apollo.portal.entity.po.Permission;
import com.ctrip.framework.apollo.portal.entity.po.Role;
import java.util.Set;
/**
* @author Jason Song(song_s@ctrip.com)
*/
public interface RolePermissionService {
/**
* Create role with permissions, note that role name should be unique
*/
public Role createRoleWithPermissions(Role role, Set<Long> permissionIds);
/**
* Assign role to users
*
* @return the users assigned roles
*/
public Set<String> assignRoleToUsers(String roleName, Set<String> userIds,
String operatorUserId);
/**
* Remove role from users
*/
public void removeRoleFromUsers(String roleName, Set<String> userIds, String operatorUserId);
/**
* Query users with role
*/
public Set<UserInfo> queryUsersWithRole(String roleName);
/**
* Find role by role name, note that roleName should be unique
*/
public Role findRoleByRoleName(String roleName);
/**
* Check whether user has the permission
*/
public boolean userHasPermission(String userId, String permissionType, String targetId);
public boolean isSuperAdmin(String userId);
/**
* Create permission, note that permissionType + targetId should be unique
*/
public Permission createPermission(Permission permission);
/**
* Create permissions, note that permissionType + targetId should be unique
*/
public Set<Permission> createPermissions(Set<Permission> permissions);
}