public Account CheckForAccessOverSlave(Account slaveAccount, AccountAccessRoles role) { //Admin can do anything if (UserContext.CurrentUser.Role == AccountRole.Admin) { return(slaveAccount); } //Master can read anything if (UserContext.CurrentUser.Role == AccountRole.Master && role == AccountAccessRoles.Read) { return(slaveAccount); } //You have all access rights for yourself if (UserContext.CurrentUser.Login == slaveAccount.Login) { return(slaveAccount); } var accessLevel = GetCurrentAccountAccess(slaveAccount.Login); Try.Condition(accessLevel != null && accessLevel.Role >= role, NotEnoughPrivilegeText); return(slaveAccount); }
public Account CheckForAccessOverSlave(string slave, AccountAccessRoles roles) { var slaveAccount = UserContext.Accounts.GetOrFail(slave); //_userManager.FindById(slave); //Admin can do anything return(CheckForAccessOverSlave(slaveAccount, roles)); }
public AccountAccess SetAccountAccess_Checked(Account slave, Account master, AccountAccessRoles role) { var currentAccess = UserContext.Data.AccountAccesses.Find(slave.Login, master.Login); if (role == AccountAccessRoles.None && currentAccess == null) { return(null); } if (role == AccountAccessRoles.None) { UserContext.Data.AccountAccesses.Remove(currentAccess); currentAccess = null; } else if (currentAccess == null) { currentAccess = new AccountAccess(slave, master, role); UserContext.Data.AccountAccesses.Add(currentAccess); } else { currentAccess.Role = role; } UserContext.Data.SaveChanges(); SetAccessChangeGameEvents(slave, master, role); return(currentAccess); }
public void SetAccessChangeGameEvents(Account slave, Account master, AccountAccessRoles role) { UserContext.AddGameEvent(slave.Login, GameEventType.Rights, $"Доступ {master.DisplayName} к вашему счету изменен на {role}"); UserContext.AddGameEvent(master.Login, GameEventType.Rights, $"Доступ над счетом {slave.DisplayName} изменен на {role}"); }
public static IEnumerable <AccountAccessRoles> GetFlags(this AccountAccessRoles roles) { return(Enum.GetValues(typeof(AccountAccessRoles)) .Cast <AccountAccessRoles>() .Where(x => (roles & x) > 0)); }
public AccountAccess(Account slave, Account master, AccountAccessRoles roles) { MasterAccount = master; SlaveAccount = slave; Role = roles; }
public AccountAccessClientData(AccountAccess access) { MasterLogin = access.Master; SlaveLogin = access.Slave; Role = access.Role; }