Esempio n. 1
0
        public void Engine_Instantiate()
        {
            EngineFactory   factory    = new EngineFactory();
            ISecurityEngine engine     = factory.CreateEngine();
            ISecurityItem   operation1 = engine.Store.AddSecurityItem().AddBagItem(Name, "Operation1");
            ISecurityItem   operation2 = engine.Store.AddSecurityItem().AddBagItem(Name, "Operation2");
            ISecurityItem   task       = engine.Store.AddSecurityItem().AddBagItem(Name, "Task");

            task.Children.Add(operation1);
            task.Children.Add(operation2);
            ISecurityIdentity user1 = engine.Store.AddSecurityIdentity().AddBagItem(Name, "user1");
            ISecurityIdentity user2 = engine.Store.AddSecurityIdentity().AddBagItem(Name, "user2");
            ISecurityIdentity group = engine.Store.AddSecurityIdentity().AddBagItem(Name, "group");

            group.Children.Add(user1);
            group.Children.Add(user2);
            IAccessAuthorization user1ToOperationAccessAuthorization = engine.Store.AccessAuthorize(user1, operation1);
        }
        private Dictionary <string, IAuthorization> SyncAccessAuthorizations(IEnumerable <IStorageAccessAuthorization> storageAccessAuthorizations, Dictionary <string, ISecurityItem> securityItems,
                                                                             Dictionary <string, ISecurityIdentity> securityIdentities)
        {
            Dictionary <string, IStorageAccessAuthorization> accessAuthorizations =
                storageAccessAuthorizations.ToDictionary(a => a.Id);
            Dictionary <string, IAuthorization> authorizations = _store.Authorizations.ToDictionary(a => a.Id);

            foreach (string accessAuthorizationId in accessAuthorizations.Keys)
            {
                if (!authorizations.ContainsKey(accessAuthorizationId))
                {
                    IStorageAccessAuthorization storageAccessAuthorization = accessAuthorizations[accessAuthorizationId];
                    if (!securityItems.TryGetValue(storageAccessAuthorization.SecurityItemId, out ISecurityItem securityItem))
                    {
                        continue;
                    }
                    if (!securityIdentities.TryGetValue(storageAccessAuthorization.SecurityIdentityId,
                                                        out ISecurityIdentity securityIdentity))
                    {
                        continue;
                    }

                    IAccessAuthorization accessAuthorization =
                        _store.AccessAuthorize(securityIdentity, securityItem, accessAuthorizationId);
                    accessAuthorization.LifeTime =
                        (IAuthorizationLifeTime)DeserializeObject(storageAccessAuthorization.LifeTime);
                    authorizations.Add(accessAuthorizationId, accessAuthorization);
                }
            }

            foreach (string accessAuthorizationId in authorizations.Keys)
            {
                if (!accessAuthorizations.ContainsKey(accessAuthorizationId))
                {
                    AccessAuthorization accessAuthorization = (AccessAuthorization)authorizations[accessAuthorizationId];
                    AddNewAction(StorageActionType.Add,
                                 new StorageAccessAuthorization(accessAuthorizationId, accessAuthorization.SecurityIdentity.Id,
                                                                accessAuthorization.SecurityItem.Id, ToByteArray(accessAuthorization.LifeTime),
                                                                accessAuthorization.AccessType));
                }
            }

            return(authorizations);
        }
Esempio n. 3
0
 public static IAccessAuthorization Neutral(this IAccessAuthorization authorization)
 {
     authorization.AccessType = AccessType.Neutral;
     return(authorization);
 }
Esempio n. 4
0
 public static IAccessAuthorization Allow(this IAccessAuthorization authorization)
 {
     authorization.AccessType = AccessType.Allow;
     return(authorization);
 }
Esempio n. 5
0
 public static IAccessAuthorization Deny(this IAccessAuthorization authorization)
 {
     authorization.AccessType = AccessType.Deny;
     return(authorization);
 }