Ejemplo n.º 1
0
        /// <summary>
        ///     Registers a new access point.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <returns></returns>
        public async Task Consume(ConsumeContext <IRegisterAccessPoint> context)
        {
            if (!Thread.CurrentPrincipal.IsInRole(WellKnownRoles.Manager))
            {
                context.Respond(new VoidResult("Not authorized"));
                return;
            }

            var result = await _listDepartmentsRequest.Request(ListCommand.WithoutParameters);

            var departmentExists = result.Departments.Any(x => x.DepartmentName == context.Message.AccessPoint.Department);

            if (!departmentExists)
            {
                context.Respond(result);
                return;
            }

            var accessPoint = new Data.Entities.AccessPoint
            {
                AccessPointId = context.Message.AccessPoint.AccessPointId,
                Name          = context.Message.AccessPoint.Name,
                Description   = context.Message.AccessPoint.Description,
                Department    = context.Message.AccessPoint.Department,
                ManagedBy     = Thread.CurrentPrincipal.UserName()
            };

            _databaseContext.AccessPoints.Insert(accessPoint);
            _databaseContext.Commit();
            context.Respond(new VoidResult());
        }
Ejemplo n.º 2
0
 public Task OnAccessDenied(IBus bus, Data.Entities.AccessPoint accessPoint)
 {
     Contract.Requires(bus != null);
     Contract.Requires(accessPoint != null);
     Contract.Ensures(Contract.Result <Task>() != null);
     return(null);
 }
Ejemplo n.º 3
0
 private IAccessPoint ConvertAccessPoint(Data.Entities.AccessPoint entity)
 {
     return(new Contracts.Impl.Dto.AccessPoint(entity.AccessPointId, entity.Department, entity.Name)
     {
         Description = entity.Description
     });
 }
        /// <summary>
        ///     Raises the <see cref="ScheduledUserAccessAllowed" /> event.
        /// </summary>
        /// <param name="bus">The bus.</param>
        /// <param name="accessPoint">The access point.</param>
        /// <returns></returns>
        public override Task OnAccessGranted(IBus bus, Data.Entities.AccessPoint accessPoint)
        {
            Debug.Assert(_schedule != null);

            var hash = FindUserHash(UserName);

            return(bus.Publish(new ScheduledUserAccessAllowed(accessPoint.AccessPointId, UserName, hash, _schedule)));
        }
Ejemplo n.º 5
0
        /// <summary>
        ///     Publishes an access granted event.
        /// </summary>
        /// <param name="bus">The bus.</param>
        /// <param name="accessPoint">The access point.</param>
        /// <returns></returns>
        public override async Task OnAccessGranted(IBus bus, Data.Entities.AccessPoint accessPoint)
        {
            Debug.Assert(_schedule != null);

            var tuple = await ListUsersInGroup();

            await bus.Publish(new ScheduledGroupAccessAllowed(accessPoint.AccessPointId, GroupName, tuple.Item1, tuple.Item2, _schedule));
        }
Ejemplo n.º 6
0
 public AccessRuleBase FindAccessRule(AccessRightsBase accessRights, Data.Entities.AccessPoint accessPoint)
 {
     Contract.Requires(accessRights != null);
     Contract.Requires(accessPoint != null);
     return(null);
 }
Ejemplo n.º 7
0
 /// <summary>
 ///     Publishes an access denied event.
 /// </summary>
 /// <param name="bus">The bus.</param>
 /// <param name="accessPoint">The access point.</param>
 /// <returns></returns>
 public abstract Task OnAccessDenied(IBus bus, Data.Entities.AccessPoint accessPoint);
Ejemplo n.º 8
0
 /// <summary>
 ///     Searches a rule for the specified access point.
 /// </summary>
 /// <param name="accessRights">The access rights.</param>
 /// <param name="accessPoint">The access point.</param>
 /// <returns></returns>
 public AccessRuleBase FindAccessRule(AccessRightsBase accessRights, Data.Entities.AccessPoint accessPoint)
 {
     return(accessRights.AccessRules.OfType <T>().FirstOrDefault(x => x.AccessPoint == accessPoint));
 }
 /// <summary>
 ///     Publishes the <see cref="PermanentUserAccessDenied" /> event.
 /// </summary>
 /// <param name="bus">The bus.</param>
 /// <param name="accessPoint">The access point.</param>
 /// <returns></returns>
 public override Task OnAccessDenied(IBus bus, Data.Entities.AccessPoint accessPoint)
 {
     return(bus.Publish(new PermanentUserAccessDenied(accessPoint.AccessPointId, UserName)));
 }
        /// <summary>
        ///     Publishes the <see cref="PermanentUserAccessAllowed" /> event.
        /// </summary>
        /// <param name="bus">The bus.</param>
        /// <param name="accessPoint">The access point.</param>
        /// <returns></returns>
        public override Task OnAccessGranted(IBus bus, Data.Entities.AccessPoint accessPoint)
        {
            var hash = FindUserHash(UserName);

            return(bus.Publish(new PermanentUserAccessAllowed(accessPoint.AccessPointId, UserName, hash)));
        }
        /// <summary>
        ///     Publishes the <see cref="PermanentGroupAccessAllowed" /> event.
        /// </summary>
        /// <param name="bus">The bus.</param>
        /// <param name="accessPoint">The access point.</param>
        /// <returns></returns>
        public override async Task OnAccessGranted(IBus bus, Data.Entities.AccessPoint accessPoint)
        {
            var tuple = await ListUsersInGroup();

            await bus.Publish(new PermanentGroupAccessAllowed(accessPoint.AccessPointId, GroupName, tuple.Item1, tuple.Item2));
        }
Ejemplo n.º 12
0
 /// <summary>
 ///     Publishes an access denied event.
 /// </summary>
 /// <param name="bus">The bus.</param>
 /// <param name="accessPoint">The access point.</param>
 /// <returns></returns>
 public override Task OnAccessDenied(IBus bus, Data.Entities.AccessPoint accessPoint)
 {
     return(bus.Publish(new ScheduledGroupAccessDenied(accessPoint.AccessPointId, GroupName)));
 }