Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public Account CheckForAccessOverSlave(string slave, AccountAccessRoles roles)
        {
            var slaveAccount = UserContext.Accounts.GetOrFail(slave); //_userManager.FindById(slave);

            //Admin can do anything
            return(CheckForAccessOverSlave(slaveAccount, roles));
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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}");
        }
Ejemplo n.º 5
0
 public static IEnumerable <AccountAccessRoles> GetFlags(this AccountAccessRoles roles)
 {
     return(Enum.GetValues(typeof(AccountAccessRoles))
            .Cast <AccountAccessRoles>()
            .Where(x => (roles & x) > 0));
 }
Ejemplo n.º 6
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;
 }