/// <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()); }
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); }
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))); }
/// <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)); }
public AccessRuleBase FindAccessRule(AccessRightsBase accessRights, Data.Entities.AccessPoint accessPoint) { Contract.Requires(accessRights != null); Contract.Requires(accessPoint != null); return(null); }
/// <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);
/// <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)); }
/// <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))); }