Пример #1
0
        /// <summary>
        /// 授予角色
        /// </summary>
        /// <param name="role"></param>
        public Role GiveRole(Role role)
        {
            //角色是否已存在
            if (RoleUserInfoRepo.Read().Exists(ru => ru.RoleId == role.Id && ru.UserId == this.Id))
            {
                return role;
            }

            //检查互斥
            List<Role> linkRoleList = this.DeepRoleList;
            foreach (Role linkRole in linkRoleList)
            {
                if (RoleMutex.CheckMutex(role, linkRole, RoleMutexType.Static))
                {
                    throw new Exception("授予的角色和当前用户或其所在的组织的角色存在静态互斥关系");
                }
            }

            RoleUserInfo roleUserInfo = new RoleUserInfo();
            roleUserInfo.RoleId = role.Id;
            roleUserInfo.UserId = this.Id;
            RoleUserInfoRepo.Add(roleUserInfo);
            return role;
        }
Пример #2
0
 /// <summary>
 /// 取消角色
 /// </summary>
 /// <param name="role"></param>
 public Role CancelRole(Role role)
 {
     RoleUserInfo roleUserInfo = new RoleUserInfo();
     roleUserInfo.RoleId = role.Id;
     roleUserInfo.UserId = this.Id;
     RoleUserInfoRepo.Delete(roleUserInfo);
     return role;
 }