Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
 public PermissionQuery(SecurityEntityManager entityManager, SecurityCache cache)
 {
     _entityManager = entityManager;
     _cache         = cache;
 }