public UserRole Post([FromBody] UserRole userRole) { var role = _roles.GetRole(userRole.RoleId); if (ModelState.IsValid && role != null && role.SiteId == _alias.SiteId && (User.IsInRole(RoleNames.Host) || role.Name != RoleNames.Host)) { if (role.Name == RoleNames.Host) { // host roles can only exist at global level - remove all site specific user roles _userRoles.DeleteUserRoles(userRole.UserId); _logger.Log(LogLevel.Information, this, LogFunction.Delete, "User Roles Deleted For UserId {UserId}", userRole.UserId); } userRole = _userRoles.AddUserRole(userRole); _logger.Log(LogLevel.Information, this, LogFunction.Create, "User Role Added {UserRole}", userRole); _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.User, userRole.UserId); } else { _logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized UserRole Post Attempt {UserRole}", userRole); HttpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden; userRole = null; } return(userRole); }
public async Task <int> AddUpdateAdminUser(OrganisationAdminViewDetail model) { try { var userInfo = await FindAsync(new { id = model.UserId }); if (userInfo == null) { userInfo = new User(); userInfo.IsActive = true; } userInfo.FirstName = model.Name; userInfo.LastName = model.LastName ?? null; userInfo.PhoneNumber = model.PhoneNumber; userInfo.Email = model.EmailAddress; userInfo.NormalizedEmail = model.EmailAddress; userInfo.NormalizedUserName = model.EmailAddress.ToUpper(); userInfo.UserName = model.EmailAddress; userInfo.IsDeleted = false; userInfo.IsAdmin = true; userInfo.OrganisationId = model.OrganisationId; userInfo.Custom1 = model.Custom1; var userId = await InsertOrUpdateAsync(userInfo, new { id = model.UserId > 0 ? model.UserId : 0 }); if (userId > 0) { await _userRoleRepository.AddUserRole(new UserRole { UserId = userId, RoleId = model.RoleId }); await _photos.SaveUpdateImage(model.UserImagePath, userId, userId, (int)PhotoEntityType.UserProfile); if (model.ProgramsAccessibility.Count > 0) { var programTypes = _mapper.Map <List <AdminProgramAccess> >(model.ProgramsAccessibility); programTypes.ToList().ForEach(x => x.UserId = userId); await _adminProgramTypeService.AddUpdateAdminProgramType(programTypes); } if (model.MerchantAccessibility.Count > 0) { List <MerchantAdmins> oMerchanrAdmin = new List <MerchantAdmins>(); foreach (var item in model.MerchantAccessibility) { var oAdmin = new MerchantAdmins() { adminUserId = userId, merchantId = item.merchantId }; oMerchanrAdmin.Add(oAdmin); } await _merchantAdminService.AddUpdateMerchantFromAdmins(oMerchanrAdmin); } return(userId); } return(0); } catch (Exception) { throw; } }
public Task AddToRoleAsync(UserAccount user, string roleName, CancellationToken cancellationToken) { return(Task.Factory.StartNew(() => { userRoleRepository.AddUserRole(user.Id, roleName); })); }
public async Task <ActionResult <int> > RegisterUser(RegistrationModel userModel) { try { var user = mapper.Map <User>(userModel); user.RegistrationDate = DateTime.Now; user.IsActive = true; generalRepository.Add(user); await generalRepository.SaveChangesAsync(); user = await userRepository.GetUserByEmailAsync(user.Mail); var intResponse = userRoleRepository.AddUserRole(user.UserID); if (intResponse > 0) { if (await userRepository.ChangeCurrentUserRole(user.UserID, intResponse)) { return(Ok(user.UserID)); } else { return(StatusCode(StatusCodes.Status500InternalServerError)); } } else { return(StatusCode(StatusCodes.Status500InternalServerError)); } } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message)); } }
public async Task <IdentityResult> AddUserRole(string user, string role) { try { //get role var myroles = await _roleRepository.GetSingleDataByConditionAsync(new { Name = role }); //get user var myuser = await _userRepository.GetSingleDataByConditionAsync(new { Email = user, IsActive = true, IsDeleted = false }); if (myroles != null) { UserRole userRole = new UserRole { RoleId = myroles.Id, UserId = myuser.Id }; await _userRoleRepository.AddUserRole(userRole); } return(await Task.FromResult(IdentityResult.Success)); } catch (Exception) { throw; } }
public async Task <ActionResult> AddProjectMilestone(UserRole model) { if (ModelState.IsValid) { return(Ok(await _repository.AddUserRole(model))); } return(BadRequest()); }
public UserRole Post([FromBody] UserRole UserRole) { if (ModelState.IsValid) { UserRole = UserRoles.AddUserRole(UserRole); } return(UserRole); }
public UserRole Post([FromBody] UserRole UserRole) { if (ModelState.IsValid) { UserRole = _userRoles.AddUserRole(UserRole); _logger.Log(LogLevel.Information, this, LogFunction.Create, "User Role Added {UserRole}", UserRole); } return(UserRole); }
public UserRole Post([FromBody] UserRole userRole) { if (ModelState.IsValid) { userRole = _userRoles.AddUserRole(userRole); _syncManager.AddSyncEvent(EntityNames.User, userRole.UserId); _logger.Log(LogLevel.Information, this, LogFunction.Create, "User Role Added {UserRole}", userRole); } return(userRole); }
public async Task <NetResult <SuccessResult> > AddUserToRole([FromBody] AddUserRoleModel <TKey> model) { try { SuccessResult result = new SuccessResult(); result.Success = await _userRole.AddUserRole(model, this.UserId <TKey>()); return(result); } catch (Exception ext) { return(ext); } }
public UserRole Post([FromBody] UserRole userRole) { var role = _roles.GetRole(userRole.RoleId); if (ModelState.IsValid && (User.IsInRole(RoleNames.Host) || role.Name != RoleNames.Host)) { if (role.Name == RoleNames.Host) { // host roles can only exist at global level - remove all site specific user roles _userRoles.DeleteUserRoles(userRole.UserId); _logger.Log(LogLevel.Information, this, LogFunction.Delete, "User Roles Deleted For UserId {UserId}", userRole.UserId); } userRole = _userRoles.AddUserRole(userRole); _logger.Log(LogLevel.Information, this, LogFunction.Create, "User Role Added {UserRole}", userRole); _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.User, userRole.UserId); } return(userRole); }
public IActionResult AddUser([FromBody]UserViewModel newUser) { if (!ModelState.IsValid) { return ValidationError(GeneralMessages.User); } var sha1 = System.Security.Cryptography.SHA1.Create(); var hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(newUser.Password)); newUser.Password = BitConverter.ToString(hash).Replace("-", "").ToLower(); User user = new User() { Name = newUser.Name, FirstName = newUser.FirstName, LastName = newUser.LastName, Password = newUser.Password, Email = newUser.Email, DepartmentId = newUser.DepartmentId, IsActive = true }; userRepository.AddUser(user); foreach(var roleId in newUser.UserRole) { userRoleRepository.AddUserRole(new UserRole() { UserId = user.Id, RoleId = roleId }); } Context.SaveChanges(); var addedUser = new UserDto() { Name = user.Name, FirstName = user.FirstName, LastName = user.LastName, Email = user.Email, UserRole = new List<int>(user.UserRole.Select(li => li.RoleId)), DepartmentId = user.DepartmentId, IsActive = user.IsActive }; return Ok(addedUser); }
public GenericResponse <TUserRole> AddUserRole(TUserRole userRole) { try { if (userRole == null) { return(new GenericResponse <TUserRole>("UserRole is empty")); } UserRoleRepository.AddUserRole(userRole); return(new GenericResponse <TUserRole>(userRole)); } catch (Exception ex) { return(new GenericResponse <TUserRole>(ex.Message)); } }
//TODO shoud be moved to another layer private async Task <User> CreateUser(User user) { User newUser = null; bool verified; bool allowregistration; if (user.Username == UserNames.Host || User.IsInRole(RoleNames.Admin)) { verified = true; allowregistration = true; } else { verified = false; allowregistration = _sites.GetSite(user.SiteId).AllowRegistration; } if (allowregistration) { IdentityUser identityuser = await _identityUserManager.FindByNameAsync(user.Username); if (identityuser == null) { identityuser = new IdentityUser(); identityuser.UserName = user.Username; identityuser.Email = user.Email; identityuser.EmailConfirmed = verified; var result = await _identityUserManager.CreateAsync(identityuser, user.Password); if (result.Succeeded) { user.LastLoginOn = null; user.LastIPAddress = ""; newUser = _users.AddUser(user); if (!verified) { string token = await _identityUserManager.GenerateEmailConfirmationTokenAsync(identityuser); string url = HttpContext.Request.Scheme + "://" + _tenants.GetAlias().Name + "/login?name=" + user.Username + "&token=" + WebUtility.UrlEncode(token); string body = "Dear " + user.DisplayName + ",\n\nIn Order To Complete The Registration Of Your User Account Please Click The Link Displayed Below:\n\n" + url + "\n\nThank You!"; var notification = new Notification(user.SiteId, null, newUser, "User Account Verification", body, null); _notifications.AddNotification(notification); } // assign to host role if this is the host user ( initial installation ) if (user.Username == UserNames.Host) { int hostroleid = _roles.GetRoles(user.SiteId, true).Where(item => item.Name == RoleNames.Host).FirstOrDefault().RoleId; UserRole userrole = new UserRole(); userrole.UserId = newUser.UserId; userrole.RoleId = hostroleid; userrole.EffectiveDate = null; userrole.ExpiryDate = null; _userRoles.AddUserRole(userrole); } // add folder for user Folder folder = _folders.GetFolder(user.SiteId, Utilities.PathCombine("Users", Path.DirectorySeparatorChar.ToString())); if (folder != null) { _folders.AddFolder(new Folder { SiteId = folder.SiteId, ParentId = folder.FolderId, Name = "My Folder", Path = Utilities.PathCombine(folder.Path, newUser.UserId.ToString(), Path.DirectorySeparatorChar.ToString()), Order = 1, IsSystem = true, Permissions = new List <Permission> { new Permission(PermissionNames.Browse, newUser.UserId, true), new Permission(PermissionNames.View, RoleNames.Everyone, true), new Permission(PermissionNames.Edit, newUser.UserId, true) }.EncodePermissions() }); } } } else { var result = await _identitySignInManager.CheckPasswordSignInAsync(identityuser, user.Password, false); if (result.Succeeded) { newUser = _users.GetUser(user.Username); } } if (newUser != null && user.Username != UserNames.Host) { // add auto assigned roles to user for site List <Role> roles = _roles.GetRoles(user.SiteId).Where(item => item.IsAutoAssigned).ToList(); foreach (Role role in roles) { UserRole userrole = new UserRole(); userrole.UserId = newUser.UserId; userrole.RoleId = role.RoleId; userrole.EffectiveDate = null; userrole.ExpiryDate = null; _userRoles.AddUserRole(userrole); } } if (newUser != null) { newUser.Password = ""; // remove sensitive information _logger.Log(user.SiteId, LogLevel.Information, this, LogFunction.Create, "User Added {User}", newUser); } } else { _logger.Log(user.SiteId, LogLevel.Error, this, LogFunction.Create, "User Registration Is Not Enabled For Site. User Was Not Added {User}", user); } return(newUser); }
public async Task <User> Post([FromBody] User User) { User user = null; if (ModelState.IsValid) { bool authorized = HttpContext.User.IsInRole(Constants.AdminRole); if (!authorized && !Users.GetUsers().Any()) { authorized = true; // during initial installation we need to be able to create the host user } if (authorized) { IdentityUser identityuser = await IdentityUserManager.FindByNameAsync(User.Username); if (identityuser == null) { identityuser = new IdentityUser(); identityuser.UserName = User.Username; identityuser.Email = User.Username; var result = await IdentityUserManager.CreateAsync(identityuser, User.Password); if (result.Succeeded) { user = Users.AddUser(User); if (!user.IsHost) // host users are part of every site by default { SiteUser siteuser = new SiteUser(); siteuser.SiteId = User.SiteId; siteuser.UserId = user.UserId; SiteUsers.AddSiteUser(siteuser); List <Role> roles = Roles.GetRoles(user.SiteId).Where(item => item.IsAutoAssigned == true).ToList(); foreach (Role role in roles) { UserRole userrole = new UserRole(); userrole.UserId = user.UserId; userrole.RoleId = role.RoleId; userrole.EffectiveDate = null; userrole.ExpiryDate = null; UserRoles.AddUserRole(userrole); } } } } else { user = Users.GetUser(User.Username); SiteUser siteuser = SiteUsers.GetSiteUser(User.SiteId, user.UserId); if (siteuser == null) { if (!user.IsHost) // host users are part of every site by default { siteuser = new SiteUser(); siteuser.SiteId = User.SiteId; siteuser.UserId = user.UserId; SiteUsers.AddSiteUser(siteuser); List <Role> roles = Roles.GetRoles(User.SiteId).Where(item => item.IsAutoAssigned == true).ToList(); foreach (Role role in roles) { UserRole userrole = new UserRole(); userrole.UserId = user.UserId; userrole.RoleId = role.RoleId; userrole.EffectiveDate = null; userrole.ExpiryDate = null; UserRoles.AddUserRole(userrole); } } } } } } return(user); }
public async Task <UserRoleResponse> AddUserRole(UserRoleRequestForAdd userRoleRequestForAdd) { return(await _userRoleRepository.AddUserRole(userRoleRequestForAdd)); }
public async Task <User> Post([FromBody] User User) { User user = null; if (ModelState.IsValid) { IdentityUser identityuser = await IdentityUserManager.FindByNameAsync(User.Username); if (identityuser == null) { identityuser = new IdentityUser(); identityuser.UserName = User.Username; identityuser.Email = User.Username; var result = await IdentityUserManager.CreateAsync(identityuser, User.Password); if (result.Succeeded) { user = Users.AddUser(User); if (!user.IsSuperUser) { SiteUser siteuser = new SiteUser(); siteuser.SiteId = User.SiteId; siteuser.UserId = user.UserId; SiteUsers.AddSiteUser(siteuser); List <Role> roles = Roles.GetRoles(user.SiteId).Where(item => item.IsAutoAssigned == true).ToList(); foreach (Role role in roles) { UserRole userrole = new UserRole(); userrole.UserId = user.UserId; userrole.RoleId = role.RoleId; userrole.EffectiveDate = null; userrole.ExpiryDate = null; UserRoles.AddUserRole(userrole); } } } } else { user = Users.GetUser(User.Username); SiteUser siteuser = SiteUsers.GetSiteUser(User.SiteId, user.UserId); if (siteuser == null) { if (!user.IsSuperUser) { siteuser = new SiteUser(); siteuser.SiteId = User.SiteId; siteuser.UserId = user.UserId; SiteUsers.AddSiteUser(siteuser); List <Role> roles = Roles.GetRoles(User.SiteId).Where(item => item.IsAutoAssigned == true).ToList(); foreach (Role role in roles) { UserRole userrole = new UserRole(); userrole.UserId = user.UserId; userrole.RoleId = role.RoleId; userrole.EffectiveDate = null; userrole.ExpiryDate = null; UserRoles.AddUserRole(userrole); } } } } } return(user); }
private async Task <ChatHubUser> OnConnectedGuest() { string guestname = null; guestname = Context.GetHttpContext().Request.Query["guestname"]; guestname = guestname.Trim(); if (string.IsNullOrEmpty(guestname) || !this.IsValidGuestUsername(guestname)) { throw new HubException("No valid username."); } string username = this.CreateUsername(guestname); string displayname = this.CreateDisplaynameFromUsername(username); if (await this.chatHubRepository.GetUserByDisplayName(displayname) != null) { throw new HubException("Displayname already in use. Goodbye."); } string email = "*****@*****.**"; string password = "******"; ChatHubUser chatHubUser = new ChatHubUser() { SiteId = 1, Username = username, DisplayName = displayname, Email = email, LastIPAddress = Context.GetHttpContext().Connection.RemoteIpAddress.ToString(), }; chatHubUser = this.chatHubRepository.AddChatHubUser(chatHubUser); if (chatHubUser != null && chatHubUser.Username != RoleNames.Host) { List <Role> roles = this.roles.GetRoles(chatHubUser.SiteId).Where(item => item.IsAutoAssigned).ToList(); foreach (Role role in roles) { UserRole userrole = new UserRole(); userrole.UserId = chatHubUser.UserId; userrole.RoleId = role.RoleId; userrole.EffectiveDate = null; userrole.ExpiryDate = null; userRoles.AddUserRole(userrole); } } ChatHubConnection ChatHubConnection = new ChatHubConnection() { ChatHubUserId = chatHubUser.UserId, ConnectionId = Context.ConnectionId, IpAddress = Context.GetHttpContext().Connection.RemoteIpAddress.ToString(), UserAgent = Context.GetHttpContext().Request.Headers["User-Agent"].ToString(), Status = Enum.GetName(typeof(ChatHubConnectionStatus), ChatHubConnectionStatus.Active) }; ChatHubConnection = this.chatHubRepository.AddChatHubConnection(ChatHubConnection); ChatHubSettings ChatHubSetting = new ChatHubSettings() { UsernameColor = "#7744aa", MessageColor = "#44aa77", ChatHubUserId = chatHubUser.UserId }; ChatHubSetting = this.chatHubRepository.AddChatHubSetting(ChatHubSetting); return(chatHubUser); }
//TODO shoud be moved to another layer private async Task <User> CreateUser(User user) { User newUser = null; bool verified; bool allowregistration; if (user.Username == Constants.HostUser || User.IsInRole(Constants.AdminRole)) { verified = true; allowregistration = true; } else { verified = false; allowregistration = _sites.GetSite(user.SiteId).AllowRegistration; } if (allowregistration) { IdentityUser identityuser = await _identityUserManager.FindByNameAsync(user.Username); if (identityuser == null) { identityuser = new IdentityUser(); identityuser.UserName = user.Username; identityuser.Email = user.Email; identityuser.EmailConfirmed = verified; var result = await _identityUserManager.CreateAsync(identityuser, user.Password); if (result.Succeeded) { user.LastLoginOn = null; user.LastIPAddress = ""; newUser = _users.AddUser(user); if (!verified) { Notification notification = new Notification(); notification.SiteId = user.SiteId; notification.FromUserId = null; notification.ToUserId = newUser.UserId; notification.ToEmail = ""; notification.Subject = "User Account Verification"; string token = await _identityUserManager.GenerateEmailConfirmationTokenAsync(identityuser); string url = HttpContext.Request.Scheme + "://" + _tenants.GetAlias().Name + "/login?name=" + user.Username + "&token=" + WebUtility.UrlEncode(token); notification.Body = "Dear " + user.DisplayName + ",\n\nIn Order To Complete The Registration Of Your User Account Please Click The Link Displayed Below:\n\n" + url + "\n\nThank You!"; notification.ParentId = null; notification.CreatedOn = DateTime.UtcNow; notification.IsDelivered = false; notification.DeliveredOn = null; _notifications.AddNotification(notification); } // assign to host role if this is the host user ( initial installation ) if (user.Username == Constants.HostUser) { int hostroleid = _roles.GetRoles(user.SiteId, true).Where(item => item.Name == Constants.HostRole).FirstOrDefault().RoleId; UserRole userrole = new UserRole(); userrole.UserId = newUser.UserId; userrole.RoleId = hostroleid; userrole.EffectiveDate = null; userrole.ExpiryDate = null; _userRoles.AddUserRole(userrole); } // add folder for user Folder folder = _folders.GetFolder(user.SiteId, "Users\\"); if (folder != null) { _folders.AddFolder(new Folder { SiteId = folder.SiteId, ParentId = folder.FolderId, Name = "My Folder", Path = folder.Path + newUser.UserId.ToString() + "\\", Order = 1, IsSystem = true, Permissions = "[{\"PermissionName\":\"Browse\",\"Permissions\":\"[" + newUser.UserId.ToString() + "]\"},{\"PermissionName\":\"View\",\"Permissions\":\"All Users\"},{\"PermissionName\":\"Edit\",\"Permissions\":\"[" + newUser.UserId.ToString() + "]\"}]" }); } } } else { var result = await _identitySignInManager.CheckPasswordSignInAsync(identityuser, user.Password, false); if (result.Succeeded) { newUser = _users.GetUser(user.Username); } } if (newUser != null && user.Username != Constants.HostUser) { // add auto assigned roles to user for site List <Role> roles = _roles.GetRoles(user.SiteId).Where(item => item.IsAutoAssigned).ToList(); foreach (Role role in roles) { UserRole userrole = new UserRole(); userrole.UserId = newUser.UserId; userrole.RoleId = role.RoleId; userrole.EffectiveDate = null; userrole.ExpiryDate = null; _userRoles.AddUserRole(userrole); } } if (newUser != null) { newUser.Password = ""; // remove sensitive information _logger.Log(user.SiteId, LogLevel.Information, this, LogFunction.Create, "User Added {User}", newUser); } } else { _logger.Log(user.SiteId, LogLevel.Error, this, LogFunction.Create, "User Registration Is Not Enabled For Site. User Was Not Added {User}", user); } return(newUser); }
public async Task <User> Post([FromBody] User User) { User user = null; if (ModelState.IsValid) { int hostroleid = -1; if (!Users.GetUsers().Any()) { hostroleid = Roles.GetRoles(User.SiteId, true).Where(item => item.Name == Constants.HostRole).FirstOrDefault().RoleId; } IdentityUser identityuser = await IdentityUserManager.FindByNameAsync(User.Username); if (identityuser == null) { identityuser = new IdentityUser(); identityuser.UserName = User.Username; identityuser.Email = User.Email; var result = await IdentityUserManager.CreateAsync(identityuser, User.Password); if (result.Succeeded) { user = Users.AddUser(User); // assign to host role if this is the initial installation if (hostroleid != -1) { UserRole userrole = new UserRole(); userrole.UserId = user.UserId; userrole.RoleId = hostroleid; userrole.EffectiveDate = null; userrole.ExpiryDate = null; UserRoles.AddUserRole(userrole); } } } else { var result = await IdentitySignInManager.CheckPasswordSignInAsync(identityuser, User.Password, false); if (result.Succeeded) { user = Users.GetUser(User.Username); } } if (user != null && hostroleid == -1) { // add auto assigned roles to user for site List <Role> roles = Roles.GetRoles(User.SiteId).Where(item => item.IsAutoAssigned == true).ToList(); foreach (Role role in roles) { UserRole userrole = new UserRole(); userrole.UserId = user.UserId; userrole.RoleId = role.RoleId; userrole.EffectiveDate = null; userrole.ExpiryDate = null; UserRoles.AddUserRole(userrole); } } user.Password = ""; // remove sensitive information logger.Log(LogLevel.Information, this, LogFunction.Create, "User Added {User}", user); } return(user); }