private static int ClearUnusedRoleActions(IRoleStorageProvider provider, IAuthorizationValidator validator) { int ret = 0; if (null != provider && null != validator) { ret += provider.ClearNonExistRecords(); validator.RefreshStorageAndCachedData(); } return(ret); }
/// <inheritdoc /> public DynamicApi(IContainer container) { _configurations = container.Resolve <DynamicApiConfigurations>(); _dateTimeConverter = new IsoDateTimeConverter { DateTimeFormat = _configurations.DateTimeFormat }; _jsonSerializer = new JsonSerializerSettings { DateFormatString = _configurations.DateTimeFormat }; _pagesProvider = new PagesProvider(); _cache = new ApiActionsCache(); _parser = new DynamicApiParametersParser(_dateTimeConverter); _authorizationValidator = _configurations.AuthorizationValidator; _repositoryActionLoactor = new RepositoryActionLoactor(); if (container.IsRegistered <DynamicApiControllersManager>()) { _controllersManager = container.Resolve <DynamicApiControllersManager>(); } if (container.IsRegistered <IRepositoryManager>()) { _repositoryManager = container.Resolve <IRepositoryManager>(); } if (container.IsRegistered <ILogger>()) { var logger = container.Resolve <ILogger>(); if (logger is LogAggregator logAggregator) { _logger = logAggregator; } } else { _logger = new LogAggregator(); } }
////Veriler Silinmeyecek sadece upsert edilecek.Ek olarak kullanılmayan Kısımlar elbete IRoleStorage ile ueniden silinebilir. Yani mesela fk ile refere edilmeyenler. private static int SaveActionRoles(IRoleStorageProvider provider, IEnumerable <RoleControllerActionEntity> uiEntityList, IAuthorizationValidator validator)//validator for refresh { int ret = 0; if (null != provider && !uiEntityList.IsEmptyList()) { ret = provider.Save(uiEntityList); validator.RefreshStorageAndCachedData(); } return(ret); }
private bool AuthorizeAccessAndImpersonateIfNecessary (IEnumerable<ServiceIdentity> identities, IAuthorizationValidator validator, WorkflowState currentState, Guid instanceId) { var identity = AuthenticationService.GetCurrentIdentity(); if (validator.IsCurrentUserAllowedToExecuteCommandInCurrentState(identity, currentState, instanceId)) return true; //var deputyId = GetSuitableDeputyId(validator, identity.Id, currentState, instanceId); //if (!deputyId.HasValue) // return false; //return identity.TryImpersonate(deputyId.Value); foreach (var impersonated in identities) { if (validator.IsCurrentUserAllowedToExecuteCommandInCurrentState(impersonated, currentState, instanceId)) return identity.TryImpersonate(impersonated.Id); } return false; }
private bool AuthorizeAccessAndImpersonateIfNecessary(IEnumerable <ServiceIdentity> identities, IAuthorizationValidator validator, WorkflowState currentState, Guid instanceId) { var identity = AuthenticationService.GetCurrentIdentity(); if (validator.IsCurrentUserAllowedToExecuteCommandInCurrentState(identity, currentState, instanceId)) { return(true); } //var deputyId = GetSuitableDeputyId(validator, identity.Id, currentState, instanceId); //if (!deputyId.HasValue) // return false; //return identity.TryImpersonate(deputyId.Value); foreach (var impersonated in identities) { if (validator.IsCurrentUserAllowedToExecuteCommandInCurrentState(impersonated, currentState, instanceId)) { return(identity.TryImpersonate(impersonated.Id)); } } return(false); }