Ejemplo n.º 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);
        }
Ejemplo n.º 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);
        }
Ejemplo n.º 3
0
 public int Add(RoleUserInfo info)
 {
     return(base.Add <RoleUserInfo>(info));
 }
Ejemplo n.º 4
0
 public void AddUserRoleInfo(RoleUserInfo item)
 {
     Add(item);
 }