Exemplo n.º 1
0
 private void ValidateHasPermission(StoreManagerPolicy.StoreAction action)
 {
     if (!SearchPermission(action))
     {
         throw new UserException(PromoteStoreStatus.NoAuthority,
                                 "Cannot do the required action in store " + _store + "!");
     }
 }
Exemplo n.º 2
0
 private void CanDoAction(StoreManagerPolicy.StoreAction action)
 {
     ValidateCanManageStore();
     if (CanDoAnything())
     {
         return;
     }
     ValidateHasPermission(action);
 }
Exemplo n.º 3
0
        private bool SearchPermission(StoreManagerPolicy.StoreAction permission)
        {
            foreach (StoreManagerPolicy policy in policies)
            {
                if (policy.Action == permission)
                {
                    return(true);
                }
            }

            return(false);
        }
Exemplo n.º 4
0
 private void AddOnePolicy(StoreManagerPolicy.StoreAction action)
 {
     StoreManagerPolicy[] expected =
     {
         new StoreManagerPolicy(store1, action),
     };
     Assert.AreEqual(0, userServiceSignUpSession.MarketUser.GetStoreManagerPolicies(store1).Length);
     UserPolicyService.PromoteStorePolicies(promoteName, store1, new[] { action });
     DoSignIn(promoteName, promotePassword);
     StoreManagerPolicy[] actions = userServiceSignInSession.MarketUser.GetStoreManagerPolicies(store1);
     Assert.AreEqual(expected.Length, actions.Length);
     Assert.IsTrue(expected.SequenceEqual(actions));
 }
Exemplo n.º 5
0
        public StoreManagerPolicy[] LoadUserStorePolicies(int userID)
        {
            List <StoreManagerPolicy> loadedStorePolicies = new List <StoreManagerPolicy>();

            using (var dbReader = dbConnection.SelectFromTableWithCondition("StoreManagerPolicy", "*", "SystemID = " + userID))
            {
                while (dbReader.Read())
                {
                    string storeName = dbReader.GetString(1);
                    StoreManagerPolicy.StoreAction action =
                        StoreManagerPolicy.GetActionFromString(dbReader.GetString(2));
                    loadedStorePolicies.Add(new StoreManagerPolicy(storeName, action));
                }
            }
            return(loadedStorePolicies.ToArray());
        }
Exemplo n.º 6
0
 public void RemoveAllPoliciesTest()
 {
     StoreManagerPolicy.StoreAction[] givenPermissions1 =
     {
         StoreManagerPolicy.StoreAction.ManageProducts,
         StoreManagerPolicy.StoreAction.PromoteStoreAdmin,
         StoreManagerPolicy.StoreAction.ViewPurchaseHistory,
         StoreManagerPolicy.StoreAction.DeclarePurchasePolicy
     };
     StoreManagerPolicy.StoreAction[] givenPermissions2 = new StoreManagerPolicy.StoreAction[0];
     StoreManagerPolicy[]             expected1         =
     {
         new StoreManagerPolicy(store1, StoreManagerPolicy.StoreAction.PromoteStoreAdmin),
         new StoreManagerPolicy(store1, StoreManagerPolicy.StoreAction.ManageProducts),
         new StoreManagerPolicy(store1, StoreManagerPolicy.StoreAction.DeclarePurchasePolicy),
         new StoreManagerPolicy(store1, StoreManagerPolicy.StoreAction.ViewPurchaseHistory)
     };
     StoreManagerPolicy[] expected2 = new StoreManagerPolicy[0];
     AddMorePoliciesLater(expected1, expected2, givenPermissions1, givenPermissions2);
 }
Exemplo n.º 7
0
        public string[] Promote(string userName, string permissions)
        {
            ValidateCanManageStore();
            ValidateNotPromotingHimself(userName);
            List <StoreManagerPolicy.StoreAction> actions = new List <StoreManagerPolicy.StoreAction>();
            var permissionsArray = permissions.Split(',').Distinct().ToArray();

            foreach (var permission in permissionsArray)
            {
                if (permission.Length == 0)
                {
                    continue;
                }
                StoreManagerPolicy.StoreAction action = StoreManagerPolicy.GetActionFromString(permission);
                if (!CanDoAnything() && !SearchPermission(action))
                {
                    throw new UserException(PromoteStoreStatus.PromotionOutOfReach, "Cannot grant permission " + permission + " to others if you don't have it yourself");
                }
                actions.Add(action);
            }
            return(PromoteStorePolicies(userName, actions.ToArray()));
        }