private void Authorise(IdentityEmployee user) { var identity = new ClaimsIdentity(DefaultAuthenticationTypes.ApplicationCookie); identity.AddClaim(new Claim("id", user.StaffId.ToString())); identity.AddClaim(new Claim(ClaimTypes.Name, user.UserName)); var listOfRoles = userManager.GetRoles(user.Id); if (listOfRoles.Contains("admin")) { identity.AddClaim(new Claim("role", "admin")); } else { identity.AddClaim(new Claim("role", "user")); } var ctx = HttpContext.Current.GetOwinContext(); var authManager = ctx.Authentication; authManager.SignIn(identity); }
public async Task<IHttpActionResult> RegisterUserAndEmployee( RegisterUserAndEmployeeViewModel userAndEmployeeViewModel) { userAndEmployeeViewModel.StaffId = Guid.NewGuid(); if (!ModelState.IsValid) { return BadRequest(ModelState); } var user = new IdentityEmployee { StaffId = userAndEmployeeViewModel.StaffId, UserName = userAndEmployeeViewModel.EmailAddress }; var result = await userManager.CreateAsync(user, "123123"); var errorResult = GetErrorResult(result); if (errorResult != null) { return errorResult; } var userSetRoleViewModel = new UserSetRoleViewModel(); userSetRoleViewModel.IdentityId = user.Id; userSetRoleViewModel.RoleName = "user"; await UserSetRole(userSetRoleViewModel); var employee = new Employee { FirstName = userAndEmployeeViewModel.FirstName, LastName = userAndEmployeeViewModel.LastName, HolidayAllowance = 25, RemainingAllowance = 25, HolidayBookings = new List<EmployeeHolidayBooking>(), StaffId = userAndEmployeeViewModel.StaffId, TeamId = userAndEmployeeViewModel.TeamId }; employeeDataService.Create(employee); return Ok(); }