protected MongoDbBaseRepository(IMongoDatabase mongoDb, ITenantIdProvider tenantIdProvider, string collectionName) { _mongoDb = mongoDb; _tenantIdProvider = tenantIdProvider; _collectionName = collectionName; }
public TenantAccessChecker( ITenantIdProvider tenantIdProvider, ILogger <TenantEntityAccessChecker> logger) { _tenantIdProvider = tenantIdProvider; _logger = logger; }
public InspectionController( IInspectionService inspectionService, ITenantIdProvider tenantIdProvider ) { _tenantIdProvider = tenantIdProvider; _inspectionService = inspectionService; }
public TestController( ITestService testService, ITenantIdProvider tenantIdProvider ) { _tenantIdProvider = tenantIdProvider; _testService = testService; }
public ShardResolver(ITenantIdProvider tenantIdProvider, IServiceProvider serviceProvider, IMemoryCache cache, IConfiguration config) { _tenantIdProvider = tenantIdProvider; _serviceProvider = serviceProvider; _cache = cache; _config = config; }
public PsaSummaryService( IPsaSummaryRepository psaSummaryRepository, ITenantEntityAccessChecker tenantEntityAccessChecker, ITenantIdProvider tenantIdProvider) { _psaSummaryRepository = psaSummaryRepository; _tenantEntityAccessChecker = tenantEntityAccessChecker; _tenantIdProvider = tenantIdProvider; }
public EmployeeController( IEmployeeService employeeService, ITenantIdProvider tenantIdProvider, ILogger <EmployeeController> logger) { _tenantIdProvider = tenantIdProvider; _employeeService = employeeService; _logger = logger; }
public PositionController( IService <Position> positionService, ITenantIdProvider tenantIdProvider, ILogger <PositionController> logger) { _tenantIdProvider = tenantIdProvider; _positionService = positionService; _logger = logger; }
public void Setup() { LogHelper.ConfigureConsoleLogger(); _newId = Guid.NewGuid(); _tenantMockId = Guid.NewGuid(); _roleService = Substitute.For <IRestrictedRoleService>(); _tenantIdProvider = Substitute.For <ITenantIdProvider>(); _tenantIdProvider.GetTenantId().Returns(_tenantMockId); }
public void Setup() { LogHelper.ConfigureConsoleLogger(); StaticStartup.Startup(); _newId = Guid.NewGuid(); _tenantId = Guid.NewGuid(); _testService = Substitute.For <ITestService>(); _tenantIdProvider = Substitute.For <ITenantIdProvider>(); _tenantIdProvider.GetTenantId().Returns(_tenantId); }
public PolicyManagementService( ITenantIdProvider tenantProvider, IAuthorizationPolicyCommands commands, IAuthorizationPolicyQueries queries, ILogger <PolicyManagementService> logger ) { _tenantProvider = tenantProvider; _commands = commands; _queries = queries; _log = logger; }
public DepartmentController( IService <Department> departmentService, IEmployeeService employeeService, IWorkplaceCredentialsService workplaceCredentialsService, ITenantIdProvider tenantIdProvider, ILogger <DepartmentController> logger) { _tenantIdProvider = tenantIdProvider; _departmentService = departmentService; _employeeService = employeeService; _workplaceCredentialsService = workplaceCredentialsService; _logger = logger; }
public DynamicAuthorizationPolicyProvider( IOptions <AuthorizationOptions> options, IOptions <PolicyManagementOptions> managementOptionsAccessor, ITenantIdProvider tenantIdResolver, IHttpContextAccessor httpContextAccessor, IConfiguration configuration ) : base(options) { _policyOptions = managementOptionsAccessor.Value; _tenantIdResolver = tenantIdResolver; _contextAccessor = httpContextAccessor; _configuration = configuration; }
public BranchOfficeController( IService <BranchOffice> branchOfficeService, ITimeService timeService, IWorkplaceCredentialsService workplaceCredentialsService, ITenantIdProvider tenantIdProvider, ILogger <BranchOfficeController> logger) { _timeService = timeService; _tenantIdProvider = tenantIdProvider; _branchOfficeService = branchOfficeService; _workplaceCredentialsService = workplaceCredentialsService; _logger = logger; }
public WorkplaceCredentialsService( IOpenIddictApplicationManager oidcAppManager, AuthorityDbContext authorityDbContext, AutoMapperConfig autoMapperConfig, ITenantIdProvider tenantIdProvider ) { _rngCsp = new RNGCryptoServiceProvider(); _oidcAppManager = oidcAppManager; _tenantIdProvider = tenantIdProvider; _authorityDbContext = authorityDbContext; _mapper = autoMapperConfig.CreateMapper(); }
public LocalUsersController(ApplicationContext db, AdminContext adminDb, IModelMetadataProvider metadataProvider, ILogger <LocalUsersController> logger, IStringLocalizer <LocalUsersController> localizer, IMapper mapper, ITenantIdProvider tenantIdProvider, ITenantUserInfoAccessor tenantInfo, IBlobService blobService) : base(logger, localizer, mapper) { _db = db; _adminDb = adminDb; _tenantIdProvider = tenantIdProvider; _metadataProvider = metadataProvider; _logger = logger; _localizer = localizer; _mapper = mapper; _tenantInfo = tenantInfo; _blobService = blobService; }
public PsaReportService( IPsaSummaryService summaryService, IOrgStructureReference orgStructReference, //IPsaReportRepository reportRepository, ITenantEntityAccessChecker tenantEntityAccessChecker, ITenantIdProvider tenantIdProvider, ITimeService timeService ) { _summaryService = summaryService; // _reportRepository = reportRepository; _orgStructReference = orgStructReference; _tenantEntityAccessChecker = tenantEntityAccessChecker; _tenantId = tenantIdProvider.GetTenantId(); _timeService = timeService; }
public RestrictedAccountManager( AuthorityDbContext context, MultitenantUserManager <ApplicationUser> userManager, IRestrictedRoleService roleService, IUserOrgStructureReferencesValidator userReferencesValidator, ITenantIdProvider tenantIdProvider, ITenantEntityAccessChecker accessChecker, IAccessScopeFilter accessScopeFilter, IEmailService emailService, AutoMapperConfig autoMapperConfig) : base(context, userManager, roleService, userReferencesValidator, emailService, autoMapperConfig) { _accessScopeFilter = accessScopeFilter; _accessChecker = accessChecker; _tenantIdProvider = tenantIdProvider; }
public RolesController( IRestrictedAccountManager accountManager, IRestrictedRoleService roleService, IClaimsService claimsService, IAuthorizationService authorizationService, ITenantIdProvider tenantIdProvider, AutoMapperConfig autoMapperConfig ) { _roleService = roleService; _claimsService = claimsService; _accountManager = accountManager; _authorizationService = authorizationService; _tenantIdProvider = tenantIdProvider; _mapper = autoMapperConfig.CreateMapper(); }
public void Setup() { LogHelper.ConfigureConsoleLogger(); StaticStartup.Startup(); _newId = Guid.NewGuid(); _tenantId = Guid.NewGuid(); _branchOfficeService = Substitute.For <IService <BranchOffice> >(); _tenantIdProvider = Substitute.For <ITenantIdProvider>(); _logger = Substitute.For <ILogger <BranchOfficeController> >(); _timeService = Substitute.For <ITimeService>(); _credentialsService = Substitute.For <IWorkplaceCredentialsService>(); _tenantIdProvider.GetTenantId().Returns(_tenantId); _timeService.CheckTimeZoneId(Arg.Any <string>()).Returns(true); }
public void Setup() { LogHelper.ConfigureConsoleLogger(); StaticStartup.Startup(); _newId = Guid.NewGuid(); _tenantId = Guid.NewGuid(); _inspectionService = Substitute.For <IInspectionService>(); _inspectionService.When(s => s.BeginInspectionAsync(Arg.Any <Inspection>())) .Do(v => ((Inspection)v[0]).Id = _newId); _inspectionService.BeginInspectionAsync(Arg.Any <Inspection>()).ReturnsForAnyArgs(_newId); _tenantIdProvider = Substitute.For <ITenantIdProvider>(); _tenantIdProvider.GetTenantId().Returns(_tenantId); _incompleteInspection = new Inspection() { }; }
public AppDbContext(ITenantIdProvider tenantIdProvider) { _tenantIdProvider = tenantIdProvider; }
public static bool HasTenantId(this ITenantIdProvider tenantIdProvider) { return(tenantIdProvider.GetTenantId() != null); }
// Constructor public ApplicationContext(IShardResolver shardProvider, ITenantIdProvider tenantIdProvider, IUserProvider userIdProvider, ITenantUserInfoAccessor accessor) : base(CreateDbContextOptions(shardProvider, tenantIdProvider, userIdProvider, accessor)) { _tenantIdProvider = tenantIdProvider; }
public TenantScopeFilter( ITenantIdProvider tenantIdProvider, ILogger <TenantScopeFilter> logger) { _tenantIdProvider = tenantIdProvider; }
/// <summary> /// This trick makes it possible to injected the ApplicationContext into other components via DI as usual /// but it automatically configures itself with the correct options. Inspired from this Microsoft sample: https://bit.ly/2TIEFMA /// </summary> /// <param name="shardResolver">The service that resolves the shard connection string</param> /// <param name="tenantIdProvider">The service that retrieves tenants Ids from the headers</param> /// <returns></returns> private static DbContextOptions <ApplicationContext> CreateDbContextOptions( IShardResolver shardResolver, ITenantIdProvider tenantIdProvider, IUserProvider userService, ITenantUserInfoAccessor accessor) { // Prepare the options based on the connection created with the shard manager var optionsBuilder = new DbContextOptionsBuilder <ApplicationContext>(); string connectionString = shardResolver.GetShardConnectionString(); if (tenantIdProvider is DesignTimeTenantIdProvider) { // Only for design time when running "ef migrations" command from the CLI optionsBuilder = optionsBuilder.UseSqlServer(connectionString); } else { int tenantId = tenantIdProvider.GetTenantId() ?? throw new Controllers.Misc.BadRequestException("Tenant Id was not supplied"); // Unless this is a fake design time resolver, apply row level security and pass context info SqlConnection sqlConnection = new SqlConnection(connectionString); SqlCommand cmd = sqlConnection.CreateCommand(); cmd.CommandText = @" -- Set the global values of the session context EXEC sp_set_session_context @key=N'TenantId', @value=@TenantId; EXEC sp_set_session_context @key=N'Culture', @value=@Culture; EXEC sp_set_session_context @key=N'NeutralCulture', @value=@NeutralCulture; -- Get the User Id DECLARE @UserId INT, @ExternalId NVARCHAR(450), @Email NVARCHAR(255), @SettingsVersion UNIQUEIDENTIFIER, @PermissionsVersion UNIQUEIDENTIFIER, @ViewsAndSpecsVersion UNIQUEIDENTIFIER, @UserSettingsVersion UNIQUEIDENTIFIER, @PrimaryLanguageId NVARCHAR(255), @PrimaryLanguageSymbol NVARCHAR(255), @SecondaryLanguageId NVARCHAR(255), @SecondaryLanguageSymbol NVARCHAR(255) ; SELECT @UserId = Id, @ExternalId = ExternalId, @Email = Email, @PermissionsVersion = PermissionsVersion, @UserSettingsVersion = UserSettingsVersion FROM [dbo].[LocalUsers] WHERE TenantId = @TenantId AND IsActive = 1 AND (ExternalId = @ExternalUserId OR Email = @UserEmail); -- Set LastAccess (Works only if @UserId IS NOT NULL) UPDATE [dbo].[LocalUsers] SET LastAccess = SYSDATETIMEOFFSET() WHERE Id = @UserId; -- Get hashes SELECT @SettingsVersion = SettingsVersion, @ViewsAndSpecsVersion = ViewsAndSpecsVersion, @PrimaryLanguageId = PrimaryLanguageId, @PrimaryLanguageSymbol = PrimaryLanguageSymbol, @SecondaryLanguageId = SecondaryLanguageId, @SecondaryLanguageSymbol = SecondaryLanguageSymbol FROM [dbo].[Settings] WHERE TenantId = @TenantId -- Set the User Id EXEC sp_set_session_context @key=N'UserId', @value=@UserId; -- Return the user information SELECT @UserId AS userId, @ExternalId AS ExternalId, @Email AS Email, @SettingsVersion AS SettingsVersion, @PermissionsVersion AS PermissionsVersion, @UserSettingsVersion AS UserSettingsVersion, @ViewsAndSpecsVersion AS ViewsAndSpecsVersion, @PrimaryLanguageId AS PrimaryLanguageId, @PrimaryLanguageSymbol AS PrimaryLanguageSymbol, @SecondaryLanguageId AS SecondaryLanguageId, @SecondaryLanguageSymbol AS SecondaryLanguageSymbol; "; cmd.Parameters.AddWithValue("@TenantId", tenantId); cmd.Parameters.AddWithValue("@ExternalUserId", userService.GetUserId()); cmd.Parameters.AddWithValue("@UserEmail", userService.GetUserEmail()); cmd.Parameters.AddWithValue("@Culture", CultureInfo.CurrentUICulture.Name); cmd.Parameters.AddWithValue("@NeutralCulture", CultureInfo.CurrentUICulture.IsNeutralCulture ? CultureInfo.CurrentUICulture.Name : CultureInfo.CurrentUICulture.Parent.Name); sqlConnection.Open(); using (var reader = cmd.ExecuteReader()) { if (reader.Read()) { int i = 0; var info = new TenantUserInfo { UserId = reader.IsDBNull(i) ? (int?)null : reader.GetInt32(i++), ExternalId = reader.IsDBNull(i) ? null : reader.GetString(i++), Email = reader.IsDBNull(i) ? null : reader.GetString(i++), SettingsVersion = reader.IsDBNull(i) ? null : reader.GetGuid(i++).ToString(), PermissionsVersion = reader.IsDBNull(i) ? null : reader.GetGuid(i++).ToString(), UserSettingsVersion = reader.IsDBNull(i) ? null : reader.GetGuid(i++).ToString(), ViewsAndSpecsVersion = reader.IsDBNull(i) ? null : reader.GetGuid(i++).ToString(), PrimaryLanguageId = reader.IsDBNull(i) ? null : reader.GetString(i++), PrimaryLanguageSymbol = reader.IsDBNull(i) ? null : reader.GetString(i++), SecondaryLanguageId = reader.IsDBNull(i) ? null : reader.GetString(i++), SecondaryLanguageSymbol = reader.IsDBNull(i) ? null : reader.GetString(i++), }; // Provide the user throughout the current session accessor.SetInfo(tenantId, info); } else { throw new Controllers.Misc.BadRequestException("Something went wrong while querying the user ID from the Database"); } } // Prepare the options based on the connection created with the shard manager optionsBuilder = optionsBuilder.UseSqlServer(sqlConnection); } return(optionsBuilder .ReplaceService <IMigrationsSqlGenerator, CustomSqlServerMigrationsSqlGenerator>() .Options); }
public TenantUserInfoAccessor(IHttpContextAccessor contextAccessor, ITenantIdProvider tenantIdProvider) { _contextAccessor = contextAccessor; _tenantIdProvider = tenantIdProvider; }
public MongoDbTestRepository(IMongoDatabase mongoDb, ITenantIdProvider tenantIdProvider, string collectionName) : base(mongoDb, tenantIdProvider, collectionName) { }
private IAccessChecker GetAccessCheckerInstance(ITenantIdProvider siteUserTenantIdProvider) { return(new TenantEntityAccessChecker( siteUserTenantIdProvider, Substitute.For <ILogger <TenantEntityAccessChecker> >())); }
public SqlTableBlobService(ApplicationContext db, ITenantIdProvider tenantIdProvider) { _db = db; _tenantIdProvider = tenantIdProvider; }