private IUser CreateUser(UserDetailOutput userDetail, Guid token) { var personDetail = this.organizationUnitClient.Value.PersonDetail(new PersonDetailInput { ID = userDetail.ID_Person.Value, ID_Login = token }); string uniqueUserName = usernameService.Calculate(userDetail.UserName); var newUser = this.membershipService.CreateUser(new CreateUserParams( uniqueUserName, passwordGeneratorService.Generate(), personDetail.Email, T("Auto Registered User").Text, passwordGeneratorService.Generate(), true)); var userPart = newUser.As <SkautIsUserPart>(); userPart.SkautIsUserId = userDetail.ID.Value; userPart.PersonId = personDetail.ID.Value; return(newUser); }
public async Task <object> Login([FromBody] LoginDto loginData) { var result = await _signInManager.PasswordSignInAsync(loginData.Email, loginData.Password, false, false); if (result.Succeeded) { var appUser = _userManager.Users.SingleOrDefault(r => r.Email == loginData.Email); var AppLogin = new AppUserLogin { active = appUser.Active, Email = appUser.Email, id = appUser.Id, SAPID = appUser.SAPID, Name = appUser.Name, User = appUser.UserName, Active_Burn = appUser.Active_Burn, Serie = appUser.Serie }; var token = await GenerateJwtToken(loginData.Email, appUser); appUser.Warehouse = _context.Warehouses.Find(appUser.WarehouseID); //UserDetailOutput Roles = Redirect($"/api/User/{appUser.Id}"); UserController userController = new UserController(_context, _userManager, _roleManager); var Roles = (ObjectResult)userController.Get(appUser.Id).Result; UserDetailOutput userDetail = (UserDetailOutput)Roles.Value; //Task<IActionResult> RolList = new RoleController(_context,_roleManager).Get(Roles.RoleId); return(Ok(new { token, AppLogin, warehouseCode = appUser.Warehouse.WhsCode, userDetail.RolePermissions })); } return(BadRequest("Error al Intentar Iniciar Sesion")); }
public async Task <IActionResult> Get(string id) { // TODO: Change This. var user1 = _context.Users.Where(User => User.Id == id).Select(User => (new { Department = User.Department.Name, Warehouse = User.Warehouse.WhsName })); User user = await _userManager.FindByIdAsync(id); if (user == null) { return(NoContent()); } IList <string> userRoleNames = await _userManager.GetRolesAsync(user); List <PermissionsOutput> RolePermissions = new List <PermissionsOutput>(); if (userRoleNames.Count != 0) { IQueryable <IdentityRole> userRoles = _roleManager.Roles.Where(x => userRoleNames.Contains(x.Name)); IList <Claim> roleClaims = await _roleManager.GetClaimsAsync(userRoles.FirstOrDefault()); IEnumerable <string> PermissionsClaims = roleClaims.Where(x => x.Type == CustomClaimTypes.Permission).Select(x => x.Value); RolePermissions = Permission.Get(PermissionsClaims.ToList()); } IList <Claim> userClaims = await _userManager.GetClaimsAsync(user); List <PermissionsOutput> PermissionsExtra = new List <PermissionsOutput>(); if (userClaims.Count != 0) { IEnumerable <string> PermissionsExtraClaims = userClaims.Where(x => x.Type == CustomClaimTypes.Permission).Select(x => x.Value); PermissionsExtra = Permission.Get(PermissionsExtraClaims.ToList()); } UserDetailOutput result = new UserDetailOutput { Id = user.Id, Email = user.Email, Name = user.Name, LastName = user.LastName, Active = user.Active, SAPID = user.SAPID, Department = user1.FirstOrDefault().Department, Warehouse = user1.FirstOrDefault().Warehouse, Role = userRoleNames.FirstOrDefault(), RolePermissions = RolePermissions, PermissionsExtra = PermissionsExtra, }; return(Ok(result)); }
private IUser GetOrCreateUser(UserDetailOutput userDetail, Guid token) { if (userDetail == null || !userDetail.ID.HasValue) { return(null); } var userPart = this.contentManager.Query <SkautIsUserPart>() .Where <SkautIsUserPartRecord>(u => u.SkautIsUserId == userDetail.ID.Value) .List().FirstOrDefault(); var user = (userPart != null) ? this.membershipService.GetUser(userPart.As <UserPart>().UserName) : this.CreateUser(userDetail, token); this.UpdateUserInfo(user, token); return(user); }