public async Task <string> Create(CreateUserGroupInput input) { input.CheckDataAnnotations().CheckValidResult(); await _userGroupDomainService.Create(input); return("新增用户组成功"); }
public async Task <string> Create(CreateUserGroupInput input) { //_session.CheckLoginUserDataPermision(input.DataPermissionType,"您设置的用户组的数据权限大于您拥有数据权限,系统不允许该操作"); input.CheckDataAnnotations().CheckValidResult(); CheckIsAllOrg(input); await _userGroupDomainService.Create(input); return("新增用户组成功"); }
public async Task Create(CreateUserGroupInput input) { var userGroup = input.MapTo <UserGroup>(); var thisLevelUserGroupCount = await _userGroupRepository.GetCountAsync(p => p.ParentId == input.ParentId); if (input.ParentId == 0) { userGroup.Level = 1; userGroup.Code = (thisLevelUserGroupCount + 1).ToString().PadRight(HeroConstants.CodeRuleRestrain.CodeCoverBit, HeroConstants.CodeRuleRestrain.CodeCoverSymbol); } else { var parentUserGroup = await _userGroupRepository.SingleOrDefaultAsync(p => p.Id == input.ParentId); if (parentUserGroup == null) { throw new BusinessException($"不存在Id为{input.ParentId}的用户组信息"); } userGroup.Level = parentUserGroup.Level + 1; userGroup.Code = parentUserGroup.Code + HeroConstants.CodeRuleRestrain.CodeSeparator + (thisLevelUserGroupCount + 1).ToString().PadLeft(HeroConstants.CodeRuleRestrain.CodeCoverBit, HeroConstants.CodeRuleRestrain.CodeCoverSymbol); } await UnitOfWorkAsync(async (conn, trans) => { var userGroupId = await _userGroupRepository.InsertAndGetIdAsync(userGroup, conn, trans); foreach (var userId in input.UserIds) { var userInfo = await _userRepository.SingleOrDefaultAsync(p => p.Id == userId); if (userInfo == null) { throw new BusinessException($"不存在用户Id为{userId}的用户信息"); } await _userUserGroupRelationRepository.InsertAsync(new UserUserGroupRelation() { UserGroupId = userGroupId, UserId = userId }, conn, trans); } foreach (var roleId in input.RoleIds) { var roleInfo = await _roleRepository.SingleOrDefaultAsync(p => p.Id == roleId); if (roleInfo == null) { throw new BusinessException($"不存在用户Id为{roleId}的角色信息"); } await _userGroupRoleRepository.InsertAsync(new UserGroupRole() { UserGroupId = userGroupId, RoleId = roleId }, conn, trans); } }, Connection); }
/// <summary> /// Allows creating a new user group in nebulon ON /// </summary> /// <param name="name"> /// The name of the user group /// </param> /// <param name="policyGuids"> /// List of RBAC policies that shall be assigned to the user group /// </param> /// <param name="note"> /// An optional note for the user /// </param> /// <returns></returns> public UserGroup CreateUserGroup(string name, Guid[] policyGuids, string note) { CreateUserGroupInput input = new CreateUserGroupInput(); input.Name = name; input.PolicyGuids = policyGuids; input.Note = note; // setup parameters GraphQLParameters parameters = new GraphQLParameters(); parameters.Add("input", input, false); return(RunMutation <UserGroup>(@"createOrgUserGroup", parameters)); }
public async Task <string> Create(CreateUserGroupInput input) { input.CheckDataAnnotations().CheckValidResult(); if (input.ParentId != 0) { var parentUserGroup = await _userGroupRepository.SingleOrDefaultAsync(p => p.Id == input.ParentId); if (parentUserGroup == null) { throw new BusinessException($"不存在父Id为{input.ParentId}的用户组"); } } var existUserGroup = await _userGroupRepository.FirstOrDefaultAsync(p => p.GroupCode == input.GroupCode); if (existUserGroup != null) { throw new BusinessException($"已经存在{input.GroupCode}的用户组"); } var userGroupEntity = input.MapTo <UserGroup>(); await _userGroupRepository.InsertAsync(userGroupEntity); return("新增用户组成功"); }
public async Task Create(CreateUserGroupInput input) { CheckUserDefinedDataPermission(input.DataPermissionType, input.DataPermissionOrgIds); using (var locker = await _lockerProvider.CreateLockAsync("CreateUserGroup")) { await locker.Lock(async() => { var exsitUserGroup = await _userGroupRepository.FirstOrDefaultAsync(p => p.Identification == input.Identification, false); if (exsitUserGroup != null) { throw new BusinessException($"系统中已经存在{input.Identification}的用户组"); } var userGroup = input.MapTo <UserGroup>(); await UnitOfWorkAsync(async(conn, trans) => { var userGroupId = await _userGroupRepository.InsertAndGetIdAsync(userGroup, conn, trans); foreach (var roleId in input.RoleIds) { await _userGroupRoleRepository.InsertAsync( new UserGroupRole { UserGroupId = userGroupId, RoleId = roleId }, conn, trans); } if (!input.IsAllOrg) { foreach (var orgId in input.OrgIds) { var userGroupOrg = new UserGroupOrganization() { UserGroupId = userGroupId, OrgId = orgId }; await _userGroupOrganizationRepository.InsertAsync(userGroupOrg, conn, trans); } } var insertSql = "INSERT INTO UserGroupPermission(PermissionId,UserGroupId,CreateTime,CreateBy,TenantId) VALUES(@PermissionId,@UserGroupId,@CreationTime,@CreatorUserId,@TenantId)"; var userGroupPermissions = new List <UserGroupPermission>(); foreach (var permissionId in input.PermissionIds) { userGroupPermissions.Add(new UserGroupPermission { PermissionId = permissionId, UserGroupId = userGroupId, CreationTime = DateTime.Now, CreatorUserId = _session.UserId, TenantId = _session.TenantId }); } await conn.ExecuteAsync(insertSql, userGroupPermissions, trans); if (input.DataPermissionType == DataPermissionType.UserDefined) { var insertDataPermissionOrgSql = "INSERT INTO UserGroupDataPermissionOrgRelation(UserGroupId,OrgId,CreateTime,CreateBy,TenantId) VALUES(@UserGroupId,@OrgId,@CreationTime,@CreatorUserId,@TenantId)"; var dataPermissionOrgDatas = new List <UserGroupDataPermissionOrgRelation>(); foreach (var orgId in input.DataPermissionOrgIds) { dataPermissionOrgDatas.Add(new UserGroupDataPermissionOrgRelation() { UserGroupId = userGroupId, OrgId = orgId, CreationTime = DateTime.Now, CreatorUserId = _session.UserId, TenantId = _session.TenantId }); } await conn.ExecuteAsync(insertDataPermissionOrgSql, dataPermissionOrgDatas, trans); } }, Connection); }); } }