示例#1
0
        /// <summary>
        ///     删除组信息
        /// </summary>
        /// <param name="input">组Id</param>
        /// <returns></returns>
        public async Task <OperateStatus> DeleteGroup(IdInput input)
        {
            var operateStatus = new OperateStatus();
            //判断是否具有人员
            var permissionUsers = await
                                  _permissionUserLogic.GetPermissionUsersByPrivilegeMasterAdnPrivilegeMasterValue(EnumPrivilegeMaster.组,
                                                                                                                  input.Id);

            if (permissionUsers.Any())
            {
                operateStatus.ResultSign = ResultSign.Error;
                operateStatus.Message    = ResourceSystem.具有人员;
                return(operateStatus);
            }
            //判断是否具有按钮权限
            var functionPermissions = await
                                      _permissionLogic.GetPermissionByPrivilegeMasterValue(
                new SystemPermissionByPrivilegeMasterValueInput
            {
                PrivilegeAccess      = EnumPrivilegeAccess.菜单按钮,
                PrivilegeMasterValue = input.Id,
                PrivilegeMaster      = EnumPrivilegeMaster.组
            });

            if (functionPermissions.Any())
            {
                operateStatus.ResultSign = ResultSign.Error;
                operateStatus.Message    = ResourceSystem.具有功能项权限;
                return(operateStatus);
            }
            //判断是否具有菜单权限
            var menuPermissions = await
                                  _permissionLogic.GetPermissionByPrivilegeMasterValue(
                new SystemPermissionByPrivilegeMasterValueInput
            {
                PrivilegeAccess      = EnumPrivilegeAccess.菜单,
                PrivilegeMasterValue = input.Id,
                PrivilegeMaster      = EnumPrivilegeMaster.组
            });

            if (menuPermissions.Any())
            {
                operateStatus.ResultSign = ResultSign.Error;
                operateStatus.Message    = ResourceSystem.具有菜单权限;
                return(operateStatus);
            }
            return(await DeleteAsync(new SystemGroup { GroupId = input.Id }));
        }
示例#2
0
        /// <summary>
        ///     复制
        /// </summary>
        /// <param name="input">复制信息</param>
        /// <returns></returns>
        public async Task <OperateStatus> CopyPost(SystemCopyInput input)
        {
            var operateStatus = new OperateStatus();

            try
            {
                //获取信息
                var role = await GetByIdAsync(input.Id);

                role.PostId     = CombUtil.NewComb();
                role.Name       = input.Name;
                role.CreateTime = DateTime.Now;

                //获取拥有的权限及人员
                var allUser = (await _permissionUserLogic.GetPermissionUsersByPrivilegeMasterAdnPrivilegeMasterValue(EnumPrivilegeMaster.岗位,
                                                                                                                     input.Id)).ToList();
                var allPer = (await _permissionLogic.GetSystemPermissionsByPrivilegeMasterValueAndValue(EnumPrivilegeMaster.岗位, input.Id)).ToList();
                foreach (var user in allUser)
                {
                    user.PrivilegeMasterValue = role.PostId;
                }
                foreach (var per in allPer)
                {
                    per.PrivilegeMasterValue = role.PostId;
                }
                //批量插入
                operateStatus = await _permissionUserLogic.InsertMultipleAsync(allUser);

                operateStatus = await _permissionLogic.InsertMultipleAsync(allPer);

                operateStatus = await InsertAsync(role);

                operateStatus.Message    = Chs.Successful;
                operateStatus.ResultSign = ResultSign.Successful;
            }
            catch (Exception e)
            {
                operateStatus.Message = e.Message;
            }
            return(operateStatus);
        }
示例#3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <SystemUserGetRoleUsersOutput> GetChosenPrivilegeMasterUser(SystemUserGetChosenPrivilegeMasterUser input)
        {
            SystemUserGetRoleUsersOutput output = new SystemUserGetRoleUsersOutput();
            var chosenUserDtos = await _userInfoRepository.GetChosenUser(new FreezeInput { IsFreeze = false });

            var allOrgs = (await _organizationLogic.GetAllEnumerableAsync()).ToList();
            //获取所有的用户
            var permissions =
                (await
                 _permissionUserLogic.GetPermissionUsersByPrivilegeMasterAdnPrivilegeMasterValue(input.PrivilegeMaster,
                                                                                                 input.PrivilegeMasterValue)).ToList();
            IList <string>      haveUser = new List <string>();
            IList <TransferDto> allUser  = new List <TransferDto>();

            foreach (var user in chosenUserDtos)
            {
                var permission = permissions.Where(w => w.PrivilegeMasterUserId == user.UserId).FirstOrDefault();
                if (permission != null)
                {
                    haveUser.Add(user.UserId.ToString());
                }

                TransferDto dto = new TransferDto
                {
                    key   = user.UserId.ToString(),
                    label = user.Name
                };
                string description  = string.Empty;
                var    organization = allOrgs.FirstOrDefault(w => w.OrganizationId == user.OrganizationId);
                if (organization != null && !organization.ParentIds.IsNullOrEmpty())
                {
                    foreach (var parent in organization.ParentIds.Split(','))
                    {
                        //查找上级
                        var dicinfo = allOrgs.FirstOrDefault(w => w.OrganizationId.ToString() == parent);
                        if (dicinfo != null)
                        {
                            description += dicinfo.Name + ">";
                        }
                    }
                    if (!description.IsNullOrEmpty())
                    {
                        description = description.TrimEnd('>');
                    }
                }
                dto.description = description;
                allUser.Add(dto);
            }
            output.AllUser  = allUser;
            output.HaveUser = haveUser;
            return(output);
        }
示例#4
0
        /// <summary>
        ///     删除角色信息
        /// </summary>
        /// <param name="input">角色Id</param>
        /// <returns></returns>
        public async Task <OperateStatus> DeleteRole(IdInput input)
        {
            var operateStatus = new OperateStatus();
            //判断是否具有人员
            var permissionUsers = await
                                  _permissionUserLogic.GetPermissionUsersByPrivilegeMasterAdnPrivilegeMasterValue(EnumPrivilegeMaster.角色,
                                                                                                                  input.Id);

            if (permissionUsers.Any())
            {
                operateStatus.ResultSign = ResultSign.Error;
                operateStatus.Message    = string.Format(Chs.Error, ResourceSystem.具有人员);
                return(operateStatus);
            }
            //判断是否具有按钮权限
            var functionPermissions = await
                                      _permissionLogic.GetPermissionByPrivilegeMasterValue(
                new GetPermissionByPrivilegeMasterValueInput
            {
                PrivilegeAccess      = EnumPrivilegeAccess.菜单按钮,
                PrivilegeMasterValue = input.Id,
                PrivilegeMaster      = EnumPrivilegeMaster.角色
            });

            if (functionPermissions.Any())
            {
                operateStatus.ResultSign = ResultSign.Error;
                operateStatus.Message    = string.Format(Chs.Error, ResourceSystem.具有功能项权限);
                return(operateStatus);
            }
            //判断是否具有菜单权限
            var menuPermissions = await
                                  _permissionLogic.GetPermissionByPrivilegeMasterValue(
                new GetPermissionByPrivilegeMasterValueInput
            {
                PrivilegeAccess      = EnumPrivilegeAccess.菜单,
                PrivilegeMasterValue = input.Id,
                PrivilegeMaster      = EnumPrivilegeMaster.角色
            });

            if (menuPermissions.Any())
            {
                operateStatus.ResultSign = ResultSign.Error;
                operateStatus.Message    = string.Format(Chs.Error, ResourceSystem.具有菜单权限);
                return(operateStatus);
            }
            return(await DeleteAsync(input.Id));
        }
示例#5
0
        public async Task <ViewResultBase> ChosenPrivilegeMasterUser(EnumPrivilegeMaster privilegeMaster,
                                                                     Guid privilegeMasterValue)
        {
            //获取所有人员信息
            IList <SystemChosenUserOutput> chosenUserDtos = (await _userInfoLogic.GetChosenUser()).ToList();
            //获取所有的用户
            var permissions =
                await
                _permissionUserLogic.GetPermissionUsersByPrivilegeMasterAdnPrivilegeMasterValue(privilegeMaster,
                                                                                                privilegeMasterValue);

            foreach (var dto in chosenUserDtos)
            {
                var permission = permissions.Where(w => w.PrivilegeMasterUserId == dto.UserId).FirstOrDefault();
                dto.Exist = permission != null;
            }
            return(View(chosenUserDtos.OrderByDescending(w => w.Exist).ToList()));
        }
示例#6
0
        /// <summary>
        ///     删除组织机构下级数据
        ///     删除条件:
        ///     1:没有下级菜单
        ///     2:没有权限数据
        ///     3:没有人员
        /// </summary>
        /// <param name="input">组织机构id</param>
        /// <returns></returns>
        public async Task <OperateStatus> DeleteOrganization(IdInput input)
        {
            var operateStatus = new OperateStatus();
            //判断下级菜单
            IList <JsTreeEntity> orgs = (await _organizationRepository.GetSystemOrganizationByPid(input)).ToList();

            if (orgs.Any())
            {
                operateStatus.ResultSign = ResultSign.Error;
                operateStatus.Message    = ResourceSystem.具有下级项;
                return(operateStatus);
            }

            //判断是否具有人员
            var permissionUsers = await
                                  _permissionUserLogic.GetPermissionUsersByPrivilegeMasterAdnPrivilegeMasterValue(
                EnumPrivilegeMaster.组织机构,
                input.Id);

            if (permissionUsers.Any())
            {
                operateStatus.ResultSign = ResultSign.Error;
                operateStatus.Message    = ResourceSystem.具有人员;
                return(operateStatus);
            }

            //判断是否有角色
            var orgRole = await
                          _roleLogic.GetRolesByOrganizationId(new SystemRolesGetByOrganizationId { Id = input.Id });

            if (orgRole.Any())
            {
                operateStatus.ResultSign = ResultSign.Error;
                operateStatus.Message    = ResourceSystem.具有角色;
                return(operateStatus);
            }

            //判断是否有组
            var orgGroup = await
                           _groupLogic.GetGroupByOrganizationId(new SystemGroupGetGroupByOrganizationIdInput
            {
                Id = input.Id
            });

            if (orgGroup.Any())
            {
                operateStatus.ResultSign = ResultSign.Error;
                operateStatus.Message    = ResourceSystem.具有组;
                return(operateStatus);
            }

            //判断是否有岗位
            var orgPost = await
                          _postLogic.GetPostByOrganizationId(new SystemPostGetByOrganizationId { Id = input.Id });

            if (orgPost.Any())
            {
                operateStatus.ResultSign = ResultSign.Error;
                operateStatus.Message    = ResourceSystem.具有岗位;
                return(operateStatus);
            }

            //判断是否具有按钮权限
            var functionPermissions = await
                                      _permissionLogic.GetPermissionByPrivilegeMasterValue(
                new SystemPermissionByPrivilegeMasterValueInput()
            {
                PrivilegeAccess      = EnumPrivilegeAccess.菜单按钮,
                PrivilegeMasterValue = input.Id,
                PrivilegeMaster      = EnumPrivilegeMaster.组织机构
            });

            if (functionPermissions.Any())
            {
                operateStatus.ResultSign = ResultSign.Error;
                operateStatus.Message    = ResourceSystem.具有功能项权限;
                return(operateStatus);
            }
            //判断是否具有菜单权限
            var menuPermissions = await
                                  _permissionLogic.GetPermissionByPrivilegeMasterValue(
                new SystemPermissionByPrivilegeMasterValueInput()
            {
                PrivilegeAccess      = EnumPrivilegeAccess.菜单,
                PrivilegeMasterValue = input.Id,
                PrivilegeMaster      = EnumPrivilegeMaster.组织机构
            });

            if (menuPermissions.Any())
            {
                operateStatus.ResultSign = ResultSign.Error;
                operateStatus.Message    = ResourceSystem.具有菜单权限;
                return(operateStatus);
            }
            //进行删除操作
            return(await DeleteAsync(new SystemOrganization()
            {
                OrganizationId = input.Id
            }));
        }