Exemplo n.º 1
0
 /// <summary>
 /// 添加角色
 /// </summary>
 /// <param name="roleList">角色信息</param>
 public void AddRoles(IEnumerable <Role> roleList)
 {
     if (roleList.IsNullOrEmpty())
     {
         return;
     }
     if (_roleList.Value != null)
     {
         _roleList.Value.AddRange(roleList);
     }
     else
     {
         _roleList.SetValue(roleList.ToList(), true);
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// 设置上级分组
        /// </summary>
        /// <param name="parentGroup">上级分组</param>
        public void SetParentGroup(AuthorityGroup parentGroup)
        {
            int  parentLevel = 0;
            long parentSysNo = 0;

            if (parentGroup != null)
            {
                parentLevel = parentGroup.Level;
                parentSysNo = parentGroup.SysNo;
            }
            if (parentSysNo == SysNo && !IdentityValueIsNone())
            {
                throw new Exception("不能将分组本身设置为上级分组");
            }
            //排序
            IQuery sortQuery = QueryManager.Create <AuthorityGroupQuery>(r => r.Parent == parentSysNo);

            sortQuery.AddQueryFields <AuthorityGroupQuery>(c => c.Sort);
            int maxSortIndex = repository.Max <int>(sortQuery);

            Sort = maxSortIndex + 1;
            parent.SetValue(parentGroup, true);
            //等级
            int  newLevel    = parentLevel + 1;
            bool modifyChild = newLevel != Level;

            Level = newLevel;
            if (modifyChild)
            {
                //修改所有子集信息
                ModifyChildAuthorityGroupParentGroup();
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 添加新的权限
        /// </summary>
        /// <param name="newAuthoritys">新的权限信息</param>
        public void AddAuthoritys(IEnumerable <Authority> newAuthoritys)
        {
            if (newAuthoritys.IsNullOrEmpty())
            {
                return;
            }
            List <Authority> nowAuthorityList = authoritys.Value ?? new List <Authority>(0);

            foreach (var authority in newAuthoritys)
            {
                if (authority == null)
                {
                    continue;
                }
                var nowAuthority = nowAuthorityList.FirstOrDefault(c => c.Code == authority.Code);
                if (nowAuthority == null)
                {
                    var newAuthority = authority.MapTo <Authority>();//重新生成一个对象,防止修改影响原对象的值
                    newAuthority.MarkNew();
                    nowAuthorityList.Add(newAuthority);
                    continue;
                }
            }
            authoritys.SetValue(nowAuthorityList, true);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 设置上级角色
        /// </summary>
        /// <param name="role">上级角色</param>
        public void SetParentRole(Role parentRole)
        {
            int  parentLevel = 0;
            long parentSysNo = 0;

            if (parentRole != null)
            {
                parentLevel = parentRole.Level;
                parentSysNo = parentRole.SysNo;
            }
            if (parentSysNo == _sysNo && !PrimaryValueIsNone())
            {
                throw new AppException("不能将角色本身设置为自己的上级角色");
            }
            //排序
            IQuery sortQuery = QueryFactory.Create <RoleQuery>(r => r.Parent == parentSysNo);

            sortQuery.AddQueryFields <RoleQuery>(c => c.SortIndex);
            int maxSortIndex = roleRepository.Max <int>(sortQuery);

            _sortIndex = maxSortIndex + 1;
            _parent.SetValue(parentRole, true);
            //等级
            int  newLevel    = parentLevel + 1;
            bool modifyChild = newLevel != _level;

            _level = newLevel;
            if (modifyChild)
            {
                //修改所有子集信息
                ModifyChildRole();
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// 设置上级分组
        /// </summary>
        /// <param name="parentGroup">上级分组</param>
        public void SetParentGroup(JobGroup parentGroup, bool init = true)
        {
            int    parentLevel = 0;
            string parentCode  = string.Empty;

            if (parentGroup != null)
            {
                parentLevel = parentGroup.Level;
                parentCode  = parentGroup.Code;
            }
            if (parentCode == code && !IdentityValueIsNone())
            {
                throw new Exception("不能将分组本身设置为自己的上级分组");
            }
            //排序
            IQuery sortQuery = QueryFactory.Create <JobGroupQuery>(r => r.Parent == parentCode);

            sortQuery.AddQueryFields <JobGroupQuery>(c => c.Sort);
            int maxSortIndex = repository.Max <int>(sortQuery);

            sort = maxSortIndex + 1;
            parent.SetValue(parentGroup, true);
            //等级
            int  newLevel    = parentLevel + 1;
            bool modifyChild = newLevel != level;

            level = newLevel;
            if (modifyChild)
            {
                //修改所有子集信息
                ModifyChildGroup();
            }
        }
Exemplo n.º 6
0
        /// <summary>
        /// 设置上级分组
        /// </summary>
        /// <param name="parentGroup">上级分组</param>
        public void SetParentGroup(AuthorityOperationGroup parentGroup)
        {
            int  parentLevel = 0;
            long parentSysNo = 0;

            if (parentGroup != null)
            {
                if (sysNo == parentGroup.SysNo && !IdentityValueIsNone())
                {
                    throw new Exception("不能将分组数据设置为自己的上级分组");
                }
                if (parentGroup.Root != null && parentGroup.Root.SysNo == sysNo)
                {
                    throw new Exception("不能将当前分组的下级设置为上级分组");
                }
                parentLevel = parentGroup.Level;
                parentSysNo = parentGroup.SysNo;
                root.SetValue(parentGroup.Root, false);
            }
            else
            {
                root.SetValue(null, false);
            }
            //排序
            IQuery sortQuery = QueryFactory.Create <AuthorityOperationGroupQuery>(r => r.Parent == parentSysNo);

            sortQuery.AddQueryFields <AuthorityOperationGroupQuery>(c => c.Sort);
            int maxSortIndex = repository.Max <int>(sortQuery);

            sort = maxSortIndex + 1;
            parent.SetValue(parentGroup, true);
            //等级
            int  newLevel    = parentLevel + 1;
            bool modifyChild = newLevel != level;

            level = newLevel;
            if (modifyChild)
            {
                //修改所有子集信息
                ModifyChildAuthorityGroupParentGroup();
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// 设置上级分组
        /// </summary>
        /// <param name="parentGroup">上级分组</param>
        public void SetParent(OperationGroup parentGroup)
        {
            long newParentId      = 0;                             //新的上级编号
            long nowParentId      = parent?.CurrentValue?.Id ?? 0; //当前上级编号
            bool identityHasValue = !IdentityValueIsNone();

            if (parentGroup != null)
            {
                newParentId = parentGroup.Id;
            }
            //上级相同不需要修改
            if (newParentId == nowParentId)
            {
                return;
            }
            //不能将对象本身设置为上级
            if (newParentId == Id && identityHasValue)
            {
                throw new Exception("不能将分组本身设置为上级分组");
            }
            //修改上级
            parent.SetValue(parentGroup, true);
        }
Exemplo n.º 8
0
 /// <summary>
 /// 设置分组
 /// </summary>
 /// <param name="group">权限分组</param>
 /// <param name="init">是否初始化</param>
 public void SetGroup(AuthorityGroup group, bool init = true)
 {
     _authGroup.SetValue(group, init);
 }
 /// <summary>
 /// 设置操作分组
 /// </summary>
 /// <param name="group">分组信息</param>
 /// <param name="init">是否初始化</param>
 public void SetGroup(AuthorityOperationGroup group, bool init = true)
 {
     _group.SetValue(group, init);
 }
Exemplo n.º 10
0
 /// <summary>
 /// 设置根组的值
 /// </summary>
 /// <param name="rootGroup">根组对象</param>
 /// <param name="init">是否初始化,初始化后将不再自动加载值</param>
 public void SetRootGroup(JobGroup rootGroup, bool init = true)
 {
     root.SetValue(rootGroup, init);
 }