public static bool ContactAction(HuntingEntities dataContext, TerritoryUserContact contact, bool accept, AclUser user) { try { if (accept) { var territoryUser = new TerritoryUser() { AclUserId = contact.AclUserId, UserRoleEx = TerritoryUserRoleEnum.Member, }; contact.Territory.TerritoryUsers.Add(territoryUser); } contact.IsDeleted = true; contact.SysEditor = user.Id; contact.SysUpdated = DateTime.Now; dataContext.SaveChanges(); return(true); } catch (Exception exception) { logger.Error(exception, "GetTerritoryUserContact"); return(false); } }
public IActionResult Invitation(TerritoryUserInvitation invitation) { try { if (!IsUser()) { return(Forbid()); } if (database.TerritoryUser.Count(u => BasicStrings.StringsEqual(u.Email, invitation.Email)) > 0) { return(RedirectToAction(nameof(AlreadyInvited), invitation)); } var now = DateTime.Now; var user = new TerritoryUser { Id = Guid.NewGuid(), Email = invitation.Email, Surname = invitation.Surname, GivenName = invitation.GivenName, Created = now, Updated = now, Role = "Invited" }; database.TerritoryUser.Add(user); if (string.Equals(invitation.AlbaAccount, "this-account")) { Guid albaAccountId = albaCredentialService.GetAlbaAccountIdFor(User.Identity.Name); database .TerritoryUserAlbaAccountLink .Add( new TerritoryUserAlbaAccountLink() { TerritoryUserId = user.Id, AlbaAccountId = albaAccountId, Role = "Invited", Created = DateTime.Now, Updated = DateTime.Now }); } database.SaveChanges(); return(Ok()); } catch (AlbaCredentialException e) { return(Redirect($"~/Home/LoginError?message={e.Message}")); } catch (Exception) { throw; } }
public TerritoryUserModel(TerritoryUser territoryUser, int languageId) { this.Id = territoryUser.Id; this.Email = territoryUser.AclUser.Email; this.Fullname = territoryUser.AclUser.Fullname; this.Role = territoryUser.UserRoleEx; this.RoleText = TerritoryUserRoleEnumConvertor.GetString(this.Role); this.RoleSelectList = TerritoryUserRoleEnumConvertor.GetSelectList(this.Role, languageId); }
public static bool InviteUser(HuntingEntities dataContext, Territory territory, string email, string name, AclUser sender) { var isNewUser = false; var lowerUserName = email.Trim().ToLower(); var aclUser = dataContext.AclUsers.FirstOrDefault(item => item.IsDeleted == false && item.Email == lowerUserName); if (aclUser == null) { if (string.IsNullOrWhiteSpace(name)) { return(false); } aclUser = new AclUser() { AccountTypeEx = AccountTypeEnum.Standard, Email = email, EmailCode = Guid.NewGuid().ToString(), Fullname = name, MaxTerritoryCount = 0, SysCreated = DateTime.Now, SysEditor = sender.Id, SysUpdated = DateTime.Now, }; dataContext.AclUsers.Add(aclUser); EmailContext.CreateInviteEmail(dataContext, aclUser, sender); isNewUser = true; } if (territory.TerritoryUsers.Any(item => item.AclUserId == aclUser.Id)) { return(true); } var territoryUser = new TerritoryUser() { AclUser = aclUser, UserRoleEx = isNewUser ? TerritoryUserRoleEnum.Invited : TerritoryUserRoleEnum.Member, }; territory.TerritoryUsers.Add(territoryUser); dataContext.SaveChanges(); return(true); }
public IActionResult AddUsers([FromBody] List <UserInvitation> invitations) { try { var now = DateTime.Now; Console.WriteLine($"Adding Users..."); Console.WriteLine($" Adding User: {now.ToString("HH:mm:ss")}"); Console.WriteLine($" User Count: {invitations.Count}"); if (!IsUser()) { return(Forbid()); } Guid albaAccountId = albaCredentialService.GetAlbaAccountIdFor(User.Identity.Name); foreach (var invitation in invitations) { Console.WriteLine($" Adding User: {now.ToString("HH:mm:ss")}: {invitation.Email} {invitation.Name}"); if (!invitation.Selected || string.IsNullOrWhiteSpace(invitation.Email)) { continue; } if (database.TerritoryUser.Any(u => BasicStrings.StringsEqual(u.Email, invitation.Email))) { continue; // Move to the next invite } var user = new TerritoryUser { Id = Guid.NewGuid(), Email = invitation.Email, GivenName = invitation.Name, Created = now, Updated = now, Role = "Added" }; database.TerritoryUser.Add(user); database .TerritoryUserAlbaAccountLink .Add( new TerritoryUserAlbaAccountLink() { TerritoryUserId = user.Id, AlbaAccountId = albaAccountId, Role = "Added", Created = now, Updated = now }); } database.SaveChanges(); return(Ok()); } catch (AlbaCredentialException e) { return(Redirect($"~/Home/LoginError?message={e.Message}")); } catch (Exception) { throw; } }
public IActionResult LinkAlbaAccount(LinkAlbaAccount link) { if (!IsUser()) { return(Forbid()); } var now = DateTime.Now; var user = database .TerritoryUser .FirstOrDefault(u => BasicStrings.StringsEqual(u.Email, link.TerritoryUserEmail)); if (user == null) { user = new TerritoryUser { Id = Guid.NewGuid(), Email = link.TerritoryUserEmail, Created = now, Updated = now, }; database.TerritoryUser.Add(user); database.SaveChanges(); } var accountName = database .AlbaAccounts .FirstOrDefault(a => BasicStrings.StringsEqual(a.AccountName, link.AccountName)); if (accountName != null) { throw new Exception($"Alba account '{link.AccountName}' already exists!"); } // TODO: Check if credentials work var account = new AlbaAccount { Id = Guid.NewGuid(), HostName = link.Host, AccountName = link.AccountName, Created = now, Updated = now, LongName = link.AccountName }; database.AlbaAccounts.Add(account); database.SaveChanges(); var credentials = new Credentials( account: link.AccountName, user: link.UserName, password: link.Password) { AlbaAccountId = account.Id }; albaCredentialService.SaveCredentials(credentials); var userLink = new TerritoryUserAlbaAccountLink { AlbaAccountId = account.Id, TerritoryUserId = user.Id, Created = now, Updated = now }; database.TerritoryUserAlbaAccountLink.Add(userLink); database.SaveChanges(); return(Ok()); }
public UserPointShareModel(TerritoryUser territoryUser, bool isShared) { this.Id = territoryUser.AclUser.Id; this.Name = territoryUser.AclUser.Fullname; this.IsShared = isShared; }