public override ActionResult Edit(User entity) { if (Context.Queryable <User>().Any(n => n.Account.Equals(entity.Account) && n.Id != entity.Id)) { throw new Exception("帐号已存在"); } if (!string.IsNullOrEmpty(entity.Password)) { entity.Password = DESEncrypt.DoubleEncrypt(entity.Password);//加密密码 } var result = Context.Ado.UseTran(() => { var sql = Context.Updateable(entity).UpdateColumns(n => new { n.Name, n.Account, n.IsEnabled, n.Password }) .IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();//为空字段不需要更新 Context.Deleteable <UserRole>(n => n.UserId.Equals(entity.Id)).ExecuteCommand(); if (entity.RoleId != null) { var userRoles = new List <UserRole>(); foreach (var roleId in entity.RoleId) { var item = new UserRole() { RoleId = roleId, UserId = entity.Id }; item.Create(); userRoles.Add(item); } Context.Insertable(userRoles).ExecuteCommand(); } }); return(result.IsSuccess ? Success("更新成功") : Error("更新失败")); }
public override void UpdateData() { var user = new User(SaUserId) { DbProvider = this.Provider, UserName = SaUserName, FullName = SaUserFullName }; user.Register(SaPassword, Guid.Empty, false); var roleAdmin = new Role(this.Role_AdminId) { DbProvider = this.Provider, Name = Role_Admins }; var roleUser = new Role(this.Role_UserId) { DbProvider = this.Provider, Name = Role_User }; roleAdmin.Create(Guid.Empty, false); roleUser.Create(Guid.Empty, false); var userRoleAdmin = new UserRole() { DbProvider = this.Provider, UserId = user.Id, RoleId = roleAdmin.Id }; var userRoleUser = new UserRole() { DbProvider = this.Provider, UserId = user.Id, RoleId = roleUser.Id }; userRoleAdmin.Create(Guid.Empty, false); userRoleUser.Create(Guid.Empty, false); }
public override ActionResult Add(User entity) { if (Context.Queryable <User>().Any(n => n.Account.Equals(entity.Account))) { throw new Exception("帐号已存在"); } entity.Create(); if (string.IsNullOrEmpty(entity.Password)) { entity.Password = "******"; } entity.Password = DESEncrypt.DoubleEncrypt(entity.Password); var userRoles = new List <UserRole>(); foreach (var roleId in entity.RoleId) { var item = new UserRole() { RoleId = roleId, UserId = entity.Id }; item.Create(); userRoles.Add(item); } var result = Context.Ado.UseTran(() => { Context.Insertable(entity).ExecuteCommand(); Context.Insertable(userRoles).ExecuteCommand(); }); return(result.IsSuccess ? Success("添加成功") : Error("添加失败")); }
/// <summary> /// Finds a role using a role identifier. /// </summary> /// <param name="roleId">A role identifier.</param> /// <returns>An <see cref="IUserRole"/>.</returns> public async Task <ISecurityRole> FindRoleByIdAsync(string roleId) { if (string.IsNullOrEmpty(roleId)) { throw new ArgumentNullException(nameof(roleId)); } var applicationRole = await FindByIdAsync(roleId); return(UserRole.Create(applicationRole)); }
public bool AdmitRole(string roleId, User user) { if (user.UserRoles.Any(ur => ur.RoleId == roleId)) { return(false); } user.UserRoles.Add(UserRole.Create(user.Id, roleId)); return(true); }
/// <summary> /// Finds a role using a role name. /// </summary> /// <param name="roleName">A role name.</param> /// <returns>An <see cref="IUserRole"/>.</returns> /// <exception cref="RoleNotFoundException">Role not found.</exception> public async Task <ISecurityRole> FindRoleByNameAsync(string roleName) { if (string.IsNullOrEmpty(roleName)) { throw new ArgumentNullException(nameof(roleName)); } var applicationRole = await FindByNameAsync(roleName); if (applicationRole == null) { throw new RoleNotFoundException($"Application role '{roleName}' is not found."); } return(UserRole.Create(applicationRole)); }
public Either <Error, Success> SetUserRoles(DtoLinkUserRoles linkUserRoles) { var result = _appContext.Users.FindEither(linkUserRoles.UserId).Bind( user => { linkUserRoles.RoleIds.Select(role => _appContext.Roles.Find <Role>(role)).Select( role => { UserRole.Create(user, role).Bind <EntityEntry <UserRole> >(link => _appContext.UserRoles.Add(link)); return(Right <Error, Role>(role)); }); var t = _appContext.TrySaveChanges().Bind <Success>(_ => Success.ItsSuccess); return(t); }); return(result); }
public async Task <bool> PromotedToAdmin(PromotedToAdminDto dto) { try { var user = await _userRepo.FindAsync(dto.UserId, AbortToken); if (user == null) { return(true); } var userCurrentRole = await _userRoleRepo.GetUserRoles(dto.UserId, AbortToken); if (!userCurrentRole.Any(s => s.RoleName == "admin")) { await _userRoleRepo.AddAsync(UserRole.Create(user.Id, "admin")); } return(true); } catch { return(false); } }