public static void RequiresBrightstarSystemPermission(this NancyModule module, AbstractSystemPermissionsProvider permissionsProvider, SystemPermissions get = SystemPermissions.None, SystemPermissions post = SystemPermissions.None) { module.Before.AddItemToEndOfPipeline(ctx=>RequiresAuthorization(ctx, permissionsProvider, get, post)); }
public FakeNancyBootstrapper(IBrightstarService brightstarService, AbstractStorePermissionsProvider storePermissionsProvider, AbstractSystemPermissionsProvider systemPermissionsProvider) { _brightstarService = brightstarService; _storePermissionsProvider = storePermissionsProvider; _systemPermissionsProvider = systemPermissionsProvider; }
public BrightstarBootstrapper() { var config = ConfigurationManager.GetSection("brightstarService") as BrightstarServiceConfiguration; if (config == null) throw new ConfigurationErrorsException(Strings.NoServiceConfiguration); _brightstarService = BrightstarService.GetClient(config.ConnectionString); _storePermissionsProvider = config.StorePermissionsProvider; _systemPermissionsProvider = config.SystemPermissionsProvider; }
/// <summary> /// Creates a new bootstrapper with store and system access goverened by the specified providers. /// </summary> /// <param name="brightstarService">The connection to the BrightstarDB stores</param> /// <param name="storePermissionsProvider">The store permissions provider to be used by the service</param> /// <param name="systemPermissionsProvider">The system permissions provider to be used by the service</param> /// <param name="rootPath">The path to the directory containing the service Views and assets folder</param> public BrightstarBootstrapper(IBrightstarService brightstarService, AbstractStorePermissionsProvider storePermissionsProvider, AbstractSystemPermissionsProvider systemPermissionsProvider, string rootPath = null) { _brightstarService = brightstarService; _storePermissionsProvider = storePermissionsProvider; _systemPermissionsProvider = systemPermissionsProvider; _rootPathProvider = (rootPath == null ? new DefaultRootPathProvider() : new FixedRootPathProvider(rootPath) as IRootPathProvider); //_rootPathProvider = new FixedRootPathProvider(rootPath); }
public StoresModule(IBrightstarService brightstarService, AbstractSystemPermissionsProvider systemPermissionsProvider) { this.RequiresBrightstarSystemPermission(systemPermissionsProvider, get:SystemPermissions.ListStores, post:SystemPermissions.CreateStore); Get["/"] = parameters => { ViewBag.Title = "Stores"; var stores = brightstarService.ListStores(); return Negotiate.WithModel(new StoresResponseModel { Stores = stores.ToList() }); }; Post["/"] = parameters => { ViewBag.Title = "Stores"; var request = this.Bind<CreateStoreRequestObject>(); if (request == null || String.IsNullOrEmpty(request.StoreName)) { return HttpStatusCode.BadRequest; } // Return 409 Conflict if attempt to create a store with a name that is currently in use if (brightstarService.DoesStoreExist(request.StoreName)) { return HttpStatusCode.Conflict; } // Attempt to create the store try { PersistenceType? storePersistenceType = request.GetBrightstarPersistenceType(); if (storePersistenceType.HasValue) { brightstarService.CreateStore(request.StoreName, storePersistenceType.Value); } else { brightstarService.CreateStore(request.StoreName); } } catch (ArgumentException) { return HttpStatusCode.BadRequest; } return Negotiate.WithModel(new StoreResponseModel(request.StoreName)) .WithStatusCode(HttpStatusCode.Created); }; }
/// <summary> /// Create a new bootstrapper that initializes itself from the brightstarService section /// of the application (or web) configuration file. /// </summary> /// <exception cref="ConfigurationErrorsException">Raised if the brightstarService configuration /// section does not exist in the application configuration file, or if the configuration is /// invalid.</exception> public BrightstarBootstrapper() { var config = ConfigurationManager.GetSection("brightstarService") as BrightstarServiceConfiguration; if (config == null) throw new ConfigurationErrorsException(Strings.NoServiceConfiguration); _brightstarService = BrightstarService.GetClient(config.ConnectionString); _storePermissionsProvider = config.StorePermissionsProvider ?? new FallbackStorePermissionsProvider(StorePermissions.All); _systemPermissionsProvider = config.SystemPermissionsProvider ?? new FallbackSystemPermissionsProvider(SystemPermissions.All); _authenticationProviders = config.AuthenticationProviders ?? new Collection<IAuthenticationProvider> {new NullAuthenticationProvider()}; }
private static Response RequiresAuthorization(NancyContext context, AbstractSystemPermissionsProvider permissionsProvider, SystemPermissions get, SystemPermissions post) { var permissionsRequired = SystemPermissions.None; switch (context.Request.Method.ToUpperInvariant()) { case "GET": case "HEAD": permissionsRequired = get; break; case "POST": permissionsRequired = post; break; } if (permissionsRequired == SystemPermissions.None) return HttpStatusCode.Unauthorized; if (!permissionsProvider.HasPermissions(context.CurrentUser, permissionsRequired)) { return HttpStatusCode.Unauthorized; } return null; }
/// <summary> /// Creates a new bootstrapper with store and system access goverened by the specified providers. /// </summary> /// <param name="brightstarService">The connection to the BrightstarDB stores</param> /// <param name="authenticationProviders">An enumeration of the authentication providers to be used by the service</param> /// <param name="storePermissionsProvider">The store permissions provider to be used by the service</param> /// <param name="systemPermissionsProvider">The system permissions provider to be used by the service</param> /// <param name="rootPath">The path to the directory containing the service Views and assets folder</param> /// <exception cref="ArgumentNullException">Raised if any of the arguments to the method other than <paramref name="rootPath"/> are Null.</exception> public BrightstarBootstrapper(IBrightstarService brightstarService, IEnumerable<IAuthenticationProvider> authenticationProviders, AbstractStorePermissionsProvider storePermissionsProvider, AbstractSystemPermissionsProvider systemPermissionsProvider, string rootPath = null) { if (brightstarService == null) throw new ArgumentNullException("brightstarService"); if (authenticationProviders == null) throw new ArgumentNullException("authenticationProviders"); if (storePermissionsProvider == null) throw new ArgumentNullException("storePermissionsProvider"); if (systemPermissionsProvider == null) throw new ArgumentNullException("systemPermissionsProvider"); _brightstarService = brightstarService; _authenticationProviders = authenticationProviders; _storePermissionsProvider = storePermissionsProvider; _systemPermissionsProvider = systemPermissionsProvider; _rootPathProvider = (rootPath == null ? new DefaultRootPathProvider() : new FixedRootPathProvider(rootPath) as IRootPathProvider); }
public CombiningSystemPermissionsProvider(AbstractSystemPermissionsProvider first, AbstractSystemPermissionsProvider second) { _first = first; _second = second; }
public CombiningSystemPermissionsProvider(AbstractSystemPermissionsProvider first, AbstractSystemPermissionsProvider second) { _first = first; _second = second; }