internal PermissionEvaluator(SecurityContext securityContext) { _securityContext = securityContext; _cache = securityContext.SecuritySystem.Cache; _entityManager = securityContext.SecuritySystem.EntityManager; _permissionQuery = securityContext.SecuritySystem.PermissionQuery; var config = securityContext.SecuritySystem.Configuration; _systemUserId = config.SystemUserId; _visitorUserId = config.VisitorUserId; _everyoneGroupId = config.EveryoneGroupId; _ownerGroupId = config.OwnerGroupId; }
public void Start() { GeneralSecurityContext = null; // The message provider must receive ongoing activities at this time. StartedAt = DateTime.UtcNow; var uncompleted = DataHandler.LoadCompletionState(out var lastActivityIdFromDb); PermissionTypeBase.InferForcedRelations(); using (var op = SnTrace.Security.StartOperation("Security initial loading.")) { var cache = new SecurityCache(DataHandler); cache.Initialize(); Cache = cache; op.Successful = true; } EntityManager = new SecurityEntityManager(Cache, DataHandler, MissingEntityHandler); Cache.EntityManager = EntityManager; // Property injection DataHandler.EntityManager = EntityManager; // Property injection PermissionQuery = new PermissionQuery(EntityManager, Cache); CommunicationMonitor = new CommunicationMonitor(DataHandler, Options.Create(MessagingOptions)); GeneralSecurityContext = new SecurityContext(SystemUser, this); SecurityActivityQueue = new SecurityActivityQueue(this, CommunicationMonitor, DataHandler, ActivityHistory); SecurityActivityQueue.Startup(uncompleted, lastActivityIdFromDb); ActivityHistory.SecurityActivityQueue = SecurityActivityQueue; // Property injection MessageProvider.MessageReceived += MessageProvider_MessageReceived; MessageProvider.Initialize(); MessageProvider.Start(StartedAt); _killed = false; }
public PermissionQuery(SecurityEntityManager entityManager, SecurityCache cache) { _entityManager = entityManager; _cache = cache; }