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); }
public static IAccessAuthorization Neutral(this IAccessAuthorization authorization) { authorization.AccessType = AccessType.Neutral; return(authorization); }
public static IAccessAuthorization Allow(this IAccessAuthorization authorization) { authorization.AccessType = AccessType.Allow; return(authorization); }
public static IAccessAuthorization Deny(this IAccessAuthorization authorization) { authorization.AccessType = AccessType.Deny; return(authorization); }