public AccountController(
     UserManager userManager,
     IMultiTenancyConfig multiTenancyConfig,
     IUserEmailer userEmailer,
     RoleManager roleManager,
     TenantManager tenantManager,
     IUnitOfWorkManager unitOfWorkManager,
     ITenancyNameFinder tenancyNameFinder,
     ICacheManager cacheManager,
     IAppNotifier appNotifier,
     IWebUrlService webUrlService,
     AbpLoginResultTypeHelper abpLoginResultTypeHelper,
     IUserLinkManager userLinkManager,
     INotificationSubscriptionManager notificationSubscriptionManager)
 {
     _userManager = userManager;
     _multiTenancyConfig = multiTenancyConfig;
     _userEmailer = userEmailer;
     _roleManager = roleManager;
     _tenantManager = tenantManager;
     _unitOfWorkManager = unitOfWorkManager;
     _tenancyNameFinder = tenancyNameFinder;
     _cacheManager = cacheManager;
     _webUrlService = webUrlService;
     _appNotifier = appNotifier;
     _abpLoginResultTypeHelper = abpLoginResultTypeHelper;
     _userLinkManager = userLinkManager;
     _notificationSubscriptionManager = notificationSubscriptionManager;
 }
        public AccountController(UserManager userManager, TenantManager tenantManager)
        {
            _userManager = userManager;
            _tenantManager = tenantManager;

            _abpSession = NullAbpSession.Instance;
        }
 public UserAppService_Link_Tests()
 {
     _userLinkAppService = Resolve<IUserLinkAppService>();
     _userLinkManager = Resolve<IUserLinkManager>();
     _userManager = Resolve<UserManager>();
     _tenantManager = Resolve<TenantManager>();
 }
 public TenantsController(
     ITenantAppService tenantAppService, 
     TenantManager tenantManager, 
     IEditionAppService editionAppService)
 {
     _tenantAppService = tenantAppService;
     _tenantManager = tenantManager;
     _editionAppService = editionAppService;
 }
Example #5
0
 public TenantsController(
     ITenantAppService tenantAppService,
     ICommonLookupAppService lookupAppService, 
     TenantManager tenantManager)
 {
     _tenantAppService = tenantAppService;
     _lookupAppService = lookupAppService;
     _tenantManager = tenantManager;
 }
Example #6
0
 public TenantAppService(
     TenantManager tenantManager, 
     RoleManager roleManager, 
     EditionManager editionManager, 
     IAbpZeroDbMigrator abpZeroDbMigrator)
 {
     _tenantManager = tenantManager;
     _roleManager = roleManager;
     _editionManager = editionManager;
     _abpZeroDbMigrator = abpZeroDbMigrator;
 }
 public AccountController(
     TenantManager tenantManager,
     UserManager userManager,
     RoleManager roleManager,
     IUnitOfWorkManager unitOfWorkManager,
     IMultiTenancyConfig multiTenancyConfig)
 {
     _tenantManager = tenantManager;
     _userManager = userManager;
     _roleManager = roleManager;
     _unitOfWorkManager = unitOfWorkManager;
     _multiTenancyConfig = multiTenancyConfig;
 }
 public ProfileController(TenantManager tenantManager,
     UserManager userManager,
     RoleManager roleManager,
     IUnitOfWorkManager unitOfWorkManager,
     IMultiTenancyConfig multiTenancyConfig, 
     IUserAppService userappservice)
 {
     _tenantManager = tenantManager;
     _userManager = userManager;
     _roleManager = roleManager;
     _unitOfWorkManager = unitOfWorkManager;
     _multiTenancyConfig = multiTenancyConfig;
     _userAppService = userappservice;
 }
 public TenantRegistrationController(
     IMultiTenancyConfig multiTenancyConfig,
     TenantManager tenantManager,
     EditionManager editionManager,
     IAppNotifier appNotifier, 
     UserManager userManager, 
     AbpLoginResultTypeHelper abpLoginResultTypeHelper)
 {
     _multiTenancyConfig = multiTenancyConfig;
     _tenantManager = tenantManager;
     _editionManager = editionManager;
     _appNotifier = appNotifier;
     _userManager = userManager;
     _abpLoginResultTypeHelper = abpLoginResultTypeHelper;
 }
Example #10
0
 public AccountController(
     UserManager userManager,
     IMultiTenancyConfig multiTenancyConfig,
     IUserEmailer userEmailer,
     RoleManager roleManager,
     TenantManager tenantManager,
     IUnitOfWorkManager unitOfWorkManager,
     ITenancyNameFinder tenancyNameFinder)
 {
     _userManager = userManager;
     _multiTenancyConfig = multiTenancyConfig;
     _userEmailer = userEmailer;
     _roleManager = roleManager;
     _tenantManager = tenantManager;
     _unitOfWorkManager = unitOfWorkManager;
     _tenancyNameFinder = tenancyNameFinder;
 }
 public TenantController(ITenantAppService tenantappservice, 
     
      TenantManager tenantManager,
     UserManager userManager,
     RoleManager roleManager,
     EditionManager editionManager,
     IUnitOfWorkManager unitOfWorkManager,
     IMultiTenancyConfig multiTenancyConfig
     )
 {
     _svcTenant = tenantappservice;
     _roleManager = roleManager;
     _tenantManager = tenantManager;
     _editionManager = editionManager;
     _userManager = userManager;
     _roleManager = roleManager;
     _unitOfWorkManager = unitOfWorkManager;
     _multiTenancyConfig = multiTenancyConfig;
 }
 public TenantAppService(
     
     TenantManager tenantManager,
     UserManager userManager,
     RoleManager roleManager,
     EditionManager editionManager,
     IUnitOfWorkManager unitOfWorkManager,
     IMultiTenancyConfig multiTenancyConfig
     
     )
 {
     _tenantManager = tenantManager;
     _userManager = userManager;
     _roleManager = roleManager;
     _editionManager = editionManager;
     _unitOfWorkManager = unitOfWorkManager;
     _multiTenancyConfig = multiTenancyConfig;
    
 }
Example #13
0
 public AccountController(
     TenantManager tenantManager,
     UserManager userManager,
     RoleManager roleManager,
     IUnitOfWorkManager unitOfWorkManager,
     IMultiTenancyConfig multiTenancyConfig,
     ISmtpEmailSender stmpEmailSender,
     ISmtpEmailSenderConfiguration smtpEmailSenderConfiguration,
     IEmailAppService emailAppService
     )
 {
     _tenantManager = tenantManager;
     _userManager = userManager;
     _roleManager = roleManager;
     _unitOfWorkManager = unitOfWorkManager;
     _multiTenancyConfig = multiTenancyConfig;
     _smtpEmailSender = stmpEmailSender;
     _smtpEmailSenderConfiguration = smtpEmailSenderConfiguration;
     _emailAppService = emailAppService;
 }
 public AccountController(
     TenantManager tenantManager,
     UserManager userManager,
     RoleManager roleManager,
     IUnitOfWorkManager unitOfWorkManager,
     IMultiTenancyConfig multiTenancyConfig,
     IMemberAppService memberAppService,
     IRoofTypeAppService roofTypeAppService,
     IServiceTypeAppService serviceTypeAppService,
     ILocationAppService locationAppService)
 {
     _tenantManager = tenantManager;
     _userManager = userManager;
     _roleManager = roleManager;
     _unitOfWorkManager = unitOfWorkManager;
     _multiTenancyConfig = multiTenancyConfig;
     _memberAppService = memberAppService;
     _roofTypeService = roofTypeAppService;
     _serviceTypeService = serviceTypeAppService;
     _locationService = locationAppService;
 }
Example #15
0
 public PlanManager(
     IRepository <SubProject, Guid> repositorySubProject,
     IRepository <Project, Guid> repositoryProject,
     IRepository <Procedure, Guid> repositoryProcedure,
     IHostingEnvironment hostingEnvironment, IRepository <WorkshopLayout, Guid> repositoryWorkshopLayout, TenantManager tenantManager) : base(repositorySubProject)
 {
     _repositoryProject        = repositoryProject;
     _repositoryProcedure      = repositoryProcedure;
     _hostingEnvironment       = hostingEnvironment;
     _repositoryWorkshopLayout = repositoryWorkshopLayout;
     _tenantManager            = tenantManager;
 }
Example #16
0
 public TenantService(TenantManager <TTenant, TUser, TKey> tenantManager, IQueryableProvider <TTenant> queryableProvider)
 {
     _tenantManager     = tenantManager;
     _queryableProvider = queryableProvider;
 }
Example #17
0
        internal void ExecMarkFileAsNew <T>(AsyncTaskData <T> obj)
        {
            TenantManager.SetCurrentTenant(Convert.ToInt32(obj.TenantID));

            var folderDao = DaoFactory.GetFolderDao <T>();
            T   parentFolderId;

            if (obj.FileEntry.FileEntryType == FileEntryType.File)
            {
                parentFolderId = ((File <T>)obj.FileEntry).FolderID;
            }
            else
            {
                parentFolderId = ((Folder <T>)obj.FileEntry).ID;
            }
            var parentFolders = folderDao.GetParentFolders(parentFolderId);

            parentFolders.Reverse();

            var userIDs = obj.UserIDs;

            var userEntriesData = new Dictionary <Guid, List <FileEntry <T> > >();

            if (obj.FileEntry.RootFolderType == FolderType.BUNCH)
            {
                if (!userIDs.Any())
                {
                    return;
                }

                parentFolders.Add(folderDao.GetFolder(GlobalFolder.GetFolderProjects <T>(DaoFactory)));

                var entries = new List <FileEntry <T> > {
                    obj.FileEntry
                };
                entries = entries.Concat(parentFolders).ToList();

                userIDs.ForEach(userID =>
                {
                    if (userEntriesData.ContainsKey(userID))
                    {
                        userEntriesData[userID].AddRange(entries);
                    }
                    else
                    {
                        userEntriesData.Add(userID, entries);
                    }

                    RemoveFromCahce(GlobalFolder.GetFolderProjects(DaoFactory), userID);
                });
            }
            else
            {
                var filesSecurity = FileSecurity;

                if (!userIDs.Any())
                {
                    userIDs = filesSecurity.WhoCanRead(obj.FileEntry).Where(x => x != obj.CurrentAccountId).ToList();
                }
                if (obj.FileEntry.ProviderEntry)
                {
                    userIDs = userIDs.Where(u => !UserManager.GetUsers(u).IsVisitor(UserManager)).ToList();
                }

                parentFolders.ForEach(parentFolder =>
                                      filesSecurity
                                      .WhoCanRead(parentFolder)
                                      .Where(userID => userIDs.Contains(userID) && userID != obj.CurrentAccountId)
                                      .ToList()
                                      .ForEach(userID =>
                {
                    if (userEntriesData.ContainsKey(userID))
                    {
                        userEntriesData[userID].Add(parentFolder);
                    }
                    else
                    {
                        userEntriesData.Add(userID, new List <FileEntry <T> > {
                            parentFolder
                        });
                    }
                })
                                      );



                if (obj.FileEntry.RootFolderType == FolderType.USER)
                {
                    var folderShare = folderDao.GetFolder(GlobalFolder.GetFolderShare <T>(DaoFactory));

                    foreach (var userID in userIDs)
                    {
                        var userFolderId = folderDao.GetFolderIDUser(false, userID);
                        if (Equals(userFolderId, 0))
                        {
                            continue;
                        }

                        Folder <T> rootFolder = null;
                        if (obj.FileEntry.ProviderEntry)
                        {
                            rootFolder = obj.FileEntry.RootFolderCreator == userID
                                             ? folderDao.GetFolder(userFolderId)
                                             : folderShare;
                        }
                        else if (!Equals(obj.FileEntry.RootFolderId, userFolderId))
                        {
                            rootFolder = folderShare;
                        }
                        else
                        {
                            RemoveFromCahce(userFolderId, userID);
                        }

                        if (rootFolder == null)
                        {
                            continue;
                        }

                        if (userEntriesData.ContainsKey(userID))
                        {
                            userEntriesData[userID].Add(rootFolder);
                        }
                        else
                        {
                            userEntriesData.Add(userID, new List <FileEntry <T> > {
                                rootFolder
                            });
                        }

                        RemoveFromCahce(rootFolder.ID, userID);
                    }
                }
                else if (obj.FileEntry.RootFolderType == FolderType.COMMON)
                {
                    userIDs.ForEach(userID => RemoveFromCahce(GlobalFolder.GetFolderCommon(this, DaoFactory), userID));

                    if (obj.FileEntry.ProviderEntry)
                    {
                        var commonFolder = folderDao.GetFolder(GlobalFolder.GetFolderCommon <T>(this, DaoFactory));
                        userIDs.ForEach(userID =>
                        {
                            if (userEntriesData.ContainsKey(userID))
                            {
                                userEntriesData[userID].Add(commonFolder);
                            }
                            else
                            {
                                userEntriesData.Add(userID, new List <FileEntry <T> > {
                                    commonFolder
                                });
                            }

                            RemoveFromCahce(GlobalFolder.GetFolderCommon(this, DaoFactory), userID);
                        });
                    }
                }
                else if (obj.FileEntry.RootFolderType == FolderType.Privacy)
                {
                    foreach (var userID in userIDs)
                    {
                        var privacyFolderId = folderDao.GetFolderIDPrivacy(false, userID);
                        if (Equals(privacyFolderId, 0))
                        {
                            continue;
                        }

                        var rootFolder = folderDao.GetFolder(privacyFolderId);
                        if (rootFolder == null)
                        {
                            continue;
                        }

                        if (userEntriesData.ContainsKey(userID))
                        {
                            userEntriesData[userID].Add(rootFolder);
                        }
                        else
                        {
                            userEntriesData.Add(userID, new List <FileEntry <T> > {
                                rootFolder
                            });
                        }

                        RemoveFromCahce(rootFolder.ID, userID);
                    }
                }

                userIDs.ForEach(userID =>
                {
                    if (userEntriesData.ContainsKey(userID))
                    {
                        userEntriesData[userID].Add(obj.FileEntry);
                    }
                    else
                    {
                        userEntriesData.Add(userID, new List <FileEntry <T> > {
                            obj.FileEntry
                        });
                    }
                });
            }

            var tagDao     = DaoFactory.GetTagDao <T>();
            var newTags    = new List <Tag>();
            var updateTags = new List <Tag>();

            foreach (var userID in userEntriesData.Keys)
            {
                if (tagDao.GetNewTags(userID, obj.FileEntry).Any())
                {
                    continue;
                }

                var entries = userEntriesData[userID].Distinct().ToList();

                var exist  = tagDao.GetNewTags(userID, entries).ToList();
                var update = exist.Where(t => t.EntryType == FileEntryType.Folder).ToList();
                update.ForEach(t => t.Count++);
                updateTags.AddRange(update);

                entries.ForEach(entry =>
                {
                    if (entry != null && exist.All(tag => tag != null && !tag.EntryId.Equals(entry.ID)))
                    {
                        newTags.Add(Tag.New(userID, entry));
                    }
                });
            }

            if (updateTags.Any())
            {
                tagDao.UpdateNewTags(updateTags);
            }
            if (newTags.Any())
            {
                tagDao.SaveTags(newTags);
            }
        }
Example #18
0
 public GoogleDriveApp(
     PathProvider pathProvider,
     TenantUtil tenantUtil,
     AuthContext authContext,
     SecurityContext securityContext,
     UserManager userManager,
     UserManagerWrapper userManagerWrapper,
     CookiesManager cookiesManager,
     MessageService messageService,
     Global global,
     GlobalStore globalStore,
     EmailValidationKeyProvider emailValidationKeyProvider,
     FilesLinkUtility filesLinkUtility,
     SettingsManager settingsManager,
     PersonalSettingsHelper personalSettingsHelper,
     BaseCommonLinkUtility baseCommonLinkUtility,
     IOptionsMonitor <ILog> option,
     FileUtility fileUtility,
     FilesSettingsHelper filesSettingsHelper,
     IOptionsSnapshot <AccountLinker> snapshot,
     SetupInfo setupInfo,
     GoogleLoginProvider googleLoginProvider,
     TokenHelper tokenHelper,
     DocumentServiceConnector documentServiceConnector,
     ThirdPartyAppHandlerService thirdPartyAppHandlerService,
     IServiceProvider serviceProvider,
     TenantManager tenantManager,
     CoreBaseSettings coreBaseSettings,
     CoreSettings coreSettings,
     IConfiguration configuration,
     ICacheNotify <ConsumerCacheItem> cache,
     ConsumerFactory consumerFactory,
     string name, int order, Dictionary <string, string> additional)
     : base(tenantManager, coreBaseSettings, coreSettings, configuration, cache, consumerFactory, name, order, additional)
 {
     Logger                      = option.CurrentValue;
     PathProvider                = pathProvider;
     TenantUtil                  = tenantUtil;
     AuthContext                 = authContext;
     SecurityContext             = securityContext;
     UserManager                 = userManager;
     UserManagerWrapper          = userManagerWrapper;
     CookiesManager              = cookiesManager;
     MessageService              = messageService;
     Global                      = global;
     GlobalStore                 = globalStore;
     EmailValidationKeyProvider  = emailValidationKeyProvider;
     FilesLinkUtility            = filesLinkUtility;
     SettingsManager             = settingsManager;
     PersonalSettingsHelper      = personalSettingsHelper;
     BaseCommonLinkUtility       = baseCommonLinkUtility;
     FileUtility                 = fileUtility;
     FilesSettingsHelper         = filesSettingsHelper;
     Snapshot                    = snapshot;
     SetupInfo                   = setupInfo;
     GoogleLoginProvider         = googleLoginProvider;
     TokenHelper                 = tokenHelper;
     DocumentServiceConnector    = documentServiceConnector;
     ThirdPartyAppHandlerService = thirdPartyAppHandlerService;
     ServiceProvider             = serviceProvider;
 }
Example #19
0
        public bool IsAvailableForUser(Guid itemId, Guid @for)
        {
            var id     = itemId.ToString();
            var result = false;

            var tenant = TenantManager.GetCurrentTenant();
            var dic    = WebItemSecurityCache.GetOrInsert(tenant.TenantId);

            if (dic != null)
            {
                lock (dic)
                {
                    if (dic.ContainsKey(id + @for))
                    {
                        return(dic[id + @for]);
                    }
                }
            }

            // can read or administrator
            var securityObj = WebItemSecurityObject.Create(id, WebItemManager);

            if (CoreBaseSettings.Personal &&
                securityObj.WebItemId != WebItemManager.DocumentsProductID)
            {
                // only files visible in your-docs portal
                result = false;
            }
            else
            {
                var webitem = WebItemManager[securityObj.WebItemId];
                if (webitem != null)
                {
                    if ((webitem.ID == WebItemManager.CRMProductID ||
                         webitem.ID == WebItemManager.PeopleProductID ||
                         webitem.ID == WebItemManager.BirthdaysProductID ||
                         webitem.ID == WebItemManager.MailProductID) &&
                        UserManager.GetUsers(@for).IsVisitor(UserManager))
                    {
                        // hack: crm, people, birtthday and mail products not visible for collaborators
                        result = false;
                    }
                    else if ((webitem.ID == WebItemManager.CalendarProductID ||
                              webitem.ID == WebItemManager.TalkProductID) &&
                             UserManager.GetUsers(@for).IsOutsider(UserManager))
                    {
                        // hack: calendar and talk products not visible for outsider
                        result = false;
                    }
                    else if (webitem is IModule)
                    {
                        result = PermissionContext.PermissionResolver.Check(Authentication.GetAccountByID(tenant.TenantId, @for), securityObj, null, Read) &&
                                 IsAvailableForUser(WebItemManager.GetParentItemID(webitem.ID), @for);
                    }
                    else
                    {
                        var hasUsers = AuthorizationManager.GetAces(Guid.Empty, Read.ID, securityObj).Any(a => a.SubjectId != ASC.Core.Users.Constants.GroupEveryone.ID);
                        result = PermissionContext.PermissionResolver.Check(Authentication.GetAccountByID(tenant.TenantId, @for), securityObj, null, Read) ||
                                 (hasUsers && IsProductAdministrator(securityObj.WebItemId, @for));
                    }
                }
                else
                {
                    result = false;
                }
            }

            dic = WebItemSecurityCache.Get(tenant.TenantId);
            if (dic != null)
            {
                lock (dic)
                {
                    dic[id + @for] = result;
                }
            }
            return(result);
        }
Example #20
0
 public void Deconstruct(out TenantManager tenantManager, out CoreConfiguration coreConfiguration)
 => (tenantManager, coreConfiguration) = (TenantManager, CoreConfiguration);
Example #21
0
 public TenantStatusFilter(IOptionsMonitor <ILog> options, TenantManager tenantManager)
 {
     log           = options.CurrentValue;
     TenantManager = tenantManager;
 }
 public TenantAppService(
     TenantManager tenantManager)
 {
     _tenantManager = tenantManager;
 }
Example #23
0
 public DateTime DateTimeFromUtc(DateTime utc)
 {
     return(DateTimeFromUtc(TimeZoneConverter.GetTimeZone(TenantManager.GetCurrentTenant().TimeZone), utc));
 }
 public TenantManager_Tests()
 {
     _tenantManager = Resolve<TenantManager>();
 }
Example #25
0
 public TenantUtil(TenantManager tenantManager, TimeZoneConverter timeZoneConverter)
 {
     TenantManager     = tenantManager;
     TimeZoneConverter = timeZoneConverter;
 }
Example #26
0
 public void Configure(string name, TenantUtil options)
 {
     Configure(options);
     options.TenantManager = TenantManager.Get(name);
 }
Example #27
0
 public DateTime DateTimeNow()
 {
     return(DateTimeNow(TimeZoneConverter.GetTimeZone(TenantManager.GetCurrentTenant().TimeZone)));
 }
        public void Start(DocumentStoreConfiguration config)
        {
            _config = config;
            BuildContainer(config);

            if (_config.EnableSingleAggregateRepositoryCache)
            {
                _logger.InfoFormat("Single Aggregate Repository Cache - ENABLED");
                JarvisFrameworkGlobalConfiguration.EnableSingleAggregateRepositoryCache();
            }
            else
            {
                _logger.InfoFormat("Single Aggregate Repository Cache - DISABLED");
                JarvisFrameworkGlobalConfiguration.DisableSingleAggregateRepositoryCache();
            }
            if (_config.DisableRepositoryLockOnAggregateId)
            {
                _logger.InfoFormat("Repository lock on Aggregate Id - DISABLED");
                NeventStoreExGlobalConfiguration.DisableRepositoryLockOnAggregateId();
            }
            else
            {
                _logger.InfoFormat("Repository lock on Aggregate Id - ENABLED");
                NeventStoreExGlobalConfiguration.EnableRepositoryLockOnAggregateId();
            }

            Manager = BuildTenants(_container, config);
            //Setup database check.
            foreach (var tenant in _config.TenantSettings)
            {
                foreach (var connection in _databaseNames)
                {
                    DatabaseHealthCheck check = new DatabaseHealthCheck(
                          String.Format("Tenant: {0} [Db:{1}]", tenant.TenantId, connection),
                          tenant.GetConnectionString(connection));
                }
            }

            while (StartupCheck() == false)
            {
                _logger.InfoFormat("Some precondition to start the service are not met. Will retry in 3 seconds!");
                Thread.Sleep(3000);
            }

            if (RebuildSettings.ShouldRebuild && Environment.UserInteractive)
            {
                Console.WriteLine("---> Set Log Level to INFO to speedup rebuild (y/N)?");
                var res = Console.ReadLine().Trim().ToLowerInvariant();
                if (res == "y")
                {
                    SetLogLevelTo("INFO");
                }
            }

            _logger.DebugFormat(
                "Roles:\n  api: {0}\n  worker : {1}\n  projections: {2}",
                config.IsApiServer,
                config.IsWorker,
                config.IsReadmodelBuilder
            );

            InitializeEverything(config);

            //Check if container misconfigured
            _container.CheckConfiguration();          
        }
Example #29
0
 public void Deconstruct(out ILog log, out EncryptionSettingsHelper encryptionSettingsHelper, out TenantManager tenantManager, out NotifyHelper notifyHelper, out CoreBaseSettings coreBaseSettings, out StorageFactoryConfig storageFactoryConfig, out StorageFactory storageFactory, out ICacheNotify <ProgressEncryption> progressEncryption, out IConfiguration configuration)
 {
     log = Log;
     encryptionSettingsHelper = EncryptionSettingsHelper;
     tenantManager            = TenantManager;
     notifyHelper             = NotifyHelper;
     coreBaseSettings         = CoreBaseSettings;
     storageFactoryConfig     = StorageFactoryConfig;
     storageFactory           = StorageFactory;
     progressEncryption       = ProgressEncryption;
     configuration            = Configuration;
 }
Example #30
0
 public MultiTenancyService(TenantManager tenantManager, IRepository<Tenant> tenantRepository)
 {
     _tenantManager = tenantManager;
     _tenantRepository = tenantRepository;
 }
Example #31
0
 public GoogleDriveSecurityDao(IServiceProvider serviceProvider, UserManager userManager, TenantManager tenantManager, TenantUtil tenantUtil, DbContextManager <FilesDbContext> dbContextManager, SetupInfo setupInfo, IOptionsMonitor <ILog> monitor, FileUtility fileUtility, TempPath tempPath)
     : base(serviceProvider, userManager, tenantManager, tenantUtil, dbContextManager, setupInfo, monitor, fileUtility, tempPath)
 {
 }
Example #32
0
 public DateTime DateTimeToUtc(DateTime local)
 {
     return(DateTimeToUtc(TimeZoneConverter.GetTimeZone(TenantManager.GetCurrentTenant().TimeZone), local));
 }
Example #33
0
 public FeatureService(EditionManager editionManager, TenantManager tenantManager, IRepository <Edition> editionRepository)
 {
     _editionManager    = editionManager;
     _tenantManager     = tenantManager;
     _editionRepository = editionRepository;
 }
Example #34
0
 public SmtpSenderScope(TenantManager tenantManager, CoreConfiguration coreConfiguration)
 {
     TenantManager     = tenantManager;
     CoreConfiguration = coreConfiguration;
 }
Example #35
0
        private IEnumerable <FileEntry <T> > Filter <T>(IEnumerable <FileEntry <T> > entries, FilesSecurityActions action, Guid userId)
        {
            if (entries == null || !entries.Any())
            {
                return(Enumerable.Empty <FileEntry <T> >());
            }

            var user       = UserManager.GetUsers(userId);
            var isOutsider = user.IsOutsider(UserManager);

            if (isOutsider && action != FilesSecurityActions.Read)
            {
                return(Enumerable.Empty <FileEntry <T> >());
            }

            entries = entries.Where(f => f != null).ToList();
            var result = new List <FileEntry <T> >(entries.Count());

            // save entries order
            var order = entries.Select((f, i) => new { Id = f.UniqID, Pos = i }).ToDictionary(e => e.Id, e => e.Pos);

            // common or my files
            Func <FileEntry <T>, bool> filter =
                f => f.RootFolderType == FolderType.COMMON ||
                f.RootFolderType == FolderType.USER ||
                f.RootFolderType == FolderType.SHARE ||
                f.RootFolderType == FolderType.Recent ||
                f.RootFolderType == FolderType.Favorites ||
                f.RootFolderType == FolderType.Templates ||
                f.RootFolderType == FolderType.Privacy ||
                f.RootFolderType == FolderType.Projects;

            var isVisitor = user.IsVisitor(UserManager);

            if (entries.Any(filter))
            {
                var subjects = GetUserSubjects(userId);
                List <FileShareRecord> shares = null;
                foreach (var e in entries.Where(filter))
                {
                    if (!AuthManager.GetAccountByID(TenantManager.GetCurrentTenant().TenantId, userId).IsAuthenticated&& userId != FileConstant.ShareLinkId)
                    {
                        continue;
                    }

                    if (isOutsider && (e.RootFolderType == FolderType.USER ||
                                       e.RootFolderType == FolderType.SHARE ||
                                       e.RootFolderType == FolderType.Privacy))
                    {
                        continue;
                    }

                    if (isVisitor && e.RootFolderType == FolderType.Recent)
                    {
                        continue;
                    }

                    if (isVisitor && e.RootFolderType == FolderType.Favorites)
                    {
                        continue;
                    }

                    if (isVisitor && e.RootFolderType == FolderType.Templates)
                    {
                        continue;
                    }

                    if (isVisitor && e.RootFolderType == FolderType.Privacy)
                    {
                        continue;
                    }

                    if (action != FilesSecurityActions.Read && e.FileEntryType == FileEntryType.Folder && ((IFolder)e).FolderType == FolderType.Projects)
                    {
                        // Root Projects folder read-only
                        continue;
                    }

                    if (action != FilesSecurityActions.Read && e.FileEntryType == FileEntryType.Folder && ((IFolder)e).FolderType == FolderType.SHARE)
                    {
                        // Root Share folder read-only
                        continue;
                    }

                    if (action != FilesSecurityActions.Read && e.FileEntryType == FileEntryType.Folder && ((IFolder)e).FolderType == FolderType.Recent)
                    {
                        // Recent folder read-only
                        continue;
                    }

                    if (action != FilesSecurityActions.Read && e.FileEntryType == FileEntryType.Folder && ((IFolder)e).FolderType == FolderType.Favorites)
                    {
                        // Favorites folder read-only
                        continue;
                    }

                    if (action != FilesSecurityActions.Read && e.FileEntryType == FileEntryType.Folder && ((IFolder)e).FolderType == FolderType.Templates)
                    {
                        // Templates folder read-only
                        continue;
                    }

                    if (isVisitor && e.ProviderEntry)
                    {
                        continue;
                    }

                    if (e.RootFolderType == FolderType.USER && e.RootFolderCreator == userId && !isVisitor)
                    {
                        // user has all right in his folder
                        result.Add(e);
                        continue;
                    }

                    if (e.RootFolderType == FolderType.Privacy && e.RootFolderCreator == userId && !isVisitor)
                    {
                        // user has all right in his privacy folder
                        result.Add(e);
                        continue;
                    }

                    if (DefaultCommonShare == FileShare.Read && action == FilesSecurityActions.Read && e.FileEntryType == FileEntryType.Folder &&
                        ((IFolder)e).FolderType == FolderType.COMMON)
                    {
                        // all can read Common folder
                        result.Add(e);
                        continue;
                    }

                    if (action == FilesSecurityActions.Read && e.FileEntryType == FileEntryType.Folder &&
                        ((IFolder)e).FolderType == FolderType.SHARE)
                    {
                        // all can read Share folder
                        result.Add(e);
                        continue;
                    }

                    if (action == FilesSecurityActions.Read && e.FileEntryType == FileEntryType.Folder &&
                        ((IFolder)e).FolderType == FolderType.Recent)
                    {
                        // all can read recent folder
                        result.Add(e);
                        continue;
                    }

                    if (action == FilesSecurityActions.Read && e.FileEntryType == FileEntryType.Folder &&
                        ((IFolder)e).FolderType == FolderType.Favorites)
                    {
                        // all can read favorites folder
                        result.Add(e);
                        continue;
                    }

                    if (action == FilesSecurityActions.Read && e.FileEntryType == FileEntryType.Folder &&
                        ((IFolder)e).FolderType == FolderType.Templates)
                    {
                        // all can read templates folder
                        result.Add(e);
                        continue;
                    }


                    if (e.RootFolderType == FolderType.COMMON && FileSecurityCommon.IsAdministrator(userId))
                    {
                        // administrator in Common has all right
                        result.Add(e);
                        continue;
                    }

                    if (shares == null)
                    {
                        shares = GetShares(entries).Join(subjects, r => r.Subject, s => s, (r, s) => r).ToList();
                        // shares ordered by level
                    }

                    FileShareRecord ace;
                    if (e.FileEntryType == FileEntryType.File)
                    {
                        ace = shares
                              .OrderBy(r => r, new SubjectComparer(subjects))
                              .ThenByDescending(r => r.Share, new FileShareRecord.ShareComparer())
                              .FirstOrDefault(r => Equals(r.EntryId, e.ID) && r.EntryType == FileEntryType.File);
                        if (ace == null)
                        {
                            // share on parent folders
                            ace = shares.Where(r => Equals(r.EntryId, ((File <T>)e).FolderID) && r.EntryType == FileEntryType.Folder)
                                  .OrderBy(r => r, new SubjectComparer(subjects))
                                  .ThenBy(r => r.Level)
                                  .ThenByDescending(r => r.Share, new FileShareRecord.ShareComparer())
                                  .FirstOrDefault();
                        }
                    }
                    else
                    {
                        ace = shares.Where(r => Equals(r.EntryId, e.ID) && r.EntryType == FileEntryType.Folder)
                              .OrderBy(r => r, new SubjectComparer(subjects))
                              .ThenBy(r => r.Level)
                              .ThenByDescending(r => r.Share, new FileShareRecord.ShareComparer())
                              .FirstOrDefault();
                    }

                    var defaultShare = e.RootFolderType == FolderType.USER
                        ? DefaultMyShare
                        : e.RootFolderType == FolderType.Privacy
                            ? DefaultPrivacyShare
                            : DefaultCommonShare;
                    e.Access = ace != null
                        ? ace.Share
                        : userId == FileConstant.ShareLinkId
                            ? FileShare.Restrict
                            : defaultShare;

                    if (action == FilesSecurityActions.Read && e.Access != FileShare.Restrict)
                    {
                        result.Add(e);
                    }
                    else if (action == FilesSecurityActions.Comment && (e.Access == FileShare.Comment || e.Access == FileShare.Review || e.Access == FileShare.CustomFilter || e.Access == FileShare.ReadWrite))
                    {
                        result.Add(e);
                    }
                    else if (action == FilesSecurityActions.FillForms && (e.Access == FileShare.FillForms || e.Access == FileShare.Review || e.Access == FileShare.ReadWrite))
                    {
                        result.Add(e);
                    }
                    else if (action == FilesSecurityActions.Review && (e.Access == FileShare.Review || e.Access == FileShare.ReadWrite))
                    {
                        result.Add(e);
                    }
                    else if (action == FilesSecurityActions.CustomFilter && (e.Access == FileShare.CustomFilter || e.Access == FileShare.ReadWrite))
                    {
                        result.Add(e);
                    }
                    else if (action == FilesSecurityActions.Edit && e.Access == FileShare.ReadWrite)
                    {
                        result.Add(e);
                    }
                    else if (action == FilesSecurityActions.Create && e.Access == FileShare.ReadWrite)
                    {
                        result.Add(e);
                    }
                    else if (e.Access != FileShare.Restrict && e.CreateBy == userId && (e.FileEntryType == FileEntryType.File || ((IFolder)e).FolderType != FolderType.COMMON))
                    {
                        result.Add(e);
                    }

                    if (e.CreateBy == userId)
                    {
                        e.Access = FileShare.None;                       //HACK: for client
                    }
                }
            }

            // files in bunch
            filter = f => f.RootFolderType == FolderType.BUNCH;
            if (entries.Any(filter))
            {
                var folderDao       = daoFactory.GetFolderDao <T>();
                var filteredEntries = entries.Where(filter).ToList();
                var roots           = filteredEntries
                                      .Select(r => r.RootFolderId)
                                      .ToList();

                var rootsFolders   = folderDao.GetFolders(roots);
                var bunches        = folderDao.GetBunchObjectIDs(rootsFolders.Select(r => r.ID).ToList());
                var findedAdapters = FilesIntegration.GetFileSecurity(bunches);

                foreach (var e in filteredEntries)
                {
                    findedAdapters.TryGetValue(e.RootFolderId.ToString(), out var adapter);

                    if (adapter == null)
                    {
                        continue;
                    }

                    if (adapter.CanRead(e, userId) &&
                        adapter.CanCreate(e, userId) &&
                        adapter.CanEdit(e, userId) &&
                        adapter.CanDelete(e, userId))
                    {
                        e.Access = FileShare.None;
                        result.Add(e);
                    }
                    else if (action == FilesSecurityActions.Comment && adapter.CanComment(e, userId))
                    {
                        e.Access = FileShare.Comment;
                        result.Add(e);
                    }
                    else if (action == FilesSecurityActions.FillForms && adapter.CanFillForms(e, userId))
                    {
                        e.Access = FileShare.FillForms;
                        result.Add(e);
                    }
                    else if (action == FilesSecurityActions.Review && adapter.CanReview(e, userId))
                    {
                        e.Access = FileShare.Review;
                        result.Add(e);
                    }
                    else if (action == FilesSecurityActions.CustomFilter && adapter.CanCustomFilterEdit(e, userId))
                    {
                        e.Access = FileShare.CustomFilter;
                        result.Add(e);
                    }
                    else if (action == FilesSecurityActions.Create && adapter.CanCreate(e, userId))
                    {
                        e.Access = FileShare.ReadWrite;
                        result.Add(e);
                    }
                    else if (action == FilesSecurityActions.Delete && adapter.CanDelete(e, userId))
                    {
                        e.Access = FileShare.ReadWrite;
                        result.Add(e);
                    }
                    else if (action == FilesSecurityActions.Read && adapter.CanRead(e, userId))
                    {
                        if (adapter.CanCreate(e, userId) ||
                            adapter.CanDelete(e, userId) ||
                            adapter.CanEdit(e, userId))
                        {
                            e.Access = FileShare.ReadWrite;
                        }
                        else
                        {
                            e.Access = FileShare.Read;
                        }

                        result.Add(e);
                    }
                    else if (action == FilesSecurityActions.Edit && adapter.CanEdit(e, userId))
                    {
                        e.Access = FileShare.ReadWrite;

                        result.Add(e);
                    }
                }
            }

            // files in trash
            filter = f => f.RootFolderType == FolderType.TRASH;
            if ((action == FilesSecurityActions.Read || action == FilesSecurityActions.Delete) && entries.Any(filter))
            {
                var folderDao = daoFactory.GetFolderDao <T>();
                var mytrashId = folderDao.GetFolderIDTrash(false, userId);
                if (!Equals(mytrashId, 0))
                {
                    result.AddRange(entries.Where(filter).Where(e => Equals(e.RootFolderId, mytrashId)));
                }
            }

            if (FileSecurityCommon.IsAdministrator(userId))
            {
                // administrator can work with crashed entries (crash in files_folder_tree)
                filter = f => f.RootFolderType == FolderType.DEFAULT;
                result.AddRange(entries.Where(filter));
            }

            // restore entries order
            result.Sort((x, y) => order[x.UniqID].CompareTo(order[y.UniqID]));
            return(result);
        }
Example #36
0
 public FeatureValueStore(TenantManager tenantManager)
     : base(tenantManager)
 {
 }
Example #37
0
 public TenantAppService(TenantManager tenantManager, RoleManager roleManager, EditionManager editionManager)
 {
     _tenantManager = tenantManager;
     _roleManager = roleManager;
     _editionManager = editionManager;
 }
Example #38
0
 /// <summary>
 /// 重置账套特性
 /// </summary>
 /// <param name="tenantId"></param>
 /// <returns></returns>
 public virtual async Task ResetTenantFeature(int tenantId)
 {
     await TenantManager.ResetAllFeaturesAsync(tenantId);
 }
Example #39
0
        private IEnumerable <Guid> WhoCan <T>(FileEntry <T> entry, FilesSecurityActions action)
        {
            var shares = GetShares(entry);

            FileShareRecord defaultShareRecord;

            switch (entry.RootFolderType)
            {
            case FolderType.COMMON:
                defaultShareRecord = new FileShareRecord
                {
                    Level     = int.MaxValue,
                    EntryId   = entry.ID,
                    EntryType = entry.FileEntryType,
                    Share     = DefaultCommonShare,
                    Subject   = Constants.GroupEveryone.ID,
                    Tenant    = TenantManager.GetCurrentTenant().TenantId,
                    Owner     = AuthContext.CurrentAccount.ID
                };

                if (!shares.Any())
                {
                    if ((defaultShareRecord.Share == FileShare.Read && action == FilesSecurityActions.Read) ||
                        (defaultShareRecord.Share == FileShare.ReadWrite))
                    {
                        return(UserManager.GetUsersByGroup(defaultShareRecord.Subject)
                               .Where(x => x.Status == EmployeeStatus.Active).Select(y => y.ID).Distinct());
                    }

                    return(Enumerable.Empty <Guid>());
                }

                break;

            case FolderType.USER:
                defaultShareRecord = new FileShareRecord
                {
                    Level     = int.MaxValue,
                    EntryId   = entry.ID,
                    EntryType = entry.FileEntryType,
                    Share     = DefaultMyShare,
                    Subject   = entry.RootFolderCreator,
                    Tenant    = TenantManager.GetCurrentTenant().TenantId,
                    Owner     = entry.RootFolderCreator
                };

                if (!shares.Any())
                {
                    return new List <Guid>
                           {
                               entry.RootFolderCreator
                           }
                }
                ;

                break;

            case FolderType.Privacy:
                defaultShareRecord = new FileShareRecord
                {
                    Level     = int.MaxValue,
                    EntryId   = entry.ID,
                    EntryType = entry.FileEntryType,
                    Share     = DefaultPrivacyShare,
                    Subject   = entry.RootFolderCreator,
                    Tenant    = TenantManager.GetCurrentTenant().TenantId,
                    Owner     = entry.RootFolderCreator
                };

                if (!shares.Any())
                {
                    return new List <Guid>
                           {
                               entry.RootFolderCreator
                           }
                }
                ;

                break;

            case FolderType.BUNCH:
                if (action == FilesSecurityActions.Read)
                {
                    var folderDao = daoFactory.GetFolderDao <T>();

                    var root = folderDao.GetFolder(entry.RootFolderId);
                    if (root != null)
                    {
                        var path = folderDao.GetBunchObjectID(root.ID);

                        var adapter = FilesIntegration.GetFileSecurity(path);

                        if (adapter != null)
                        {
                            return(adapter.WhoCanRead(entry));
                        }
                    }
                }

                // TODO: For Projects and other
                defaultShareRecord = null;
                break;

            default:
                defaultShareRecord = null;
                break;
            }

            if (defaultShareRecord != null)
            {
                shares = shares.Concat(new[] { defaultShareRecord });
            }

            return(shares.SelectMany(x =>
            {
                var groupInfo = UserManager.GetGroupInfo(x.Subject);

                if (groupInfo.ID != Constants.LostGroupInfo.ID)
                {
                    return
                    UserManager.GetUsersByGroup(groupInfo.ID)
                    .Where(p => p.Status == EmployeeStatus.Active)
                    .Select(y => y.ID);
                }

                return new[] { x.Subject };
            })
                   .Distinct()
                   .Where(x => Can(entry, x, action))
                   .ToList());
        }
 protected virtual Task <Tenant> GetCurrentTenantAsync()
 {
     return(TenantManager.GetByIdAsync(AbpSession.GetTenantId()));
 }
Example #41
0
 public void UserPasswordChange(UserInfo userInfo)
 {
     var hash            = Hasher.Base64Hash(Authentication.GetUserPasswordHash(TenantManager.GetCurrentTenant().TenantId, userInfo.ID));
     var confirmationUrl = CommonLinkUtility.GetConfirmationUrl(userInfo.Email, ConfirmType.PasswordChange, hash + userInfo.ID, userInfo.ID);
Example #42
0
        public IActionResult Register(TenantModel model)
        {
            if (model == null)
            {
                return(BadRequest(new
                {
                    error = "portalNameEmpty",
                    message = "PortalName is required"
                }));
            }

            if (!ModelState.IsValid)
            {
                var message = new JArray();

                foreach (var k in ModelState.Keys)
                {
                    message.Add(ModelState[k].Errors.FirstOrDefault().ErrorMessage);
                }

                return(BadRequest(new
                {
                    error = "params",
                    message
                }));
            }

            var sw = Stopwatch.StartNew();

            if (string.IsNullOrEmpty(model.PasswordHash))
            {
                if (!CheckPasswordPolicy(model.Password, out var error1))
                {
                    sw.Stop();
                    return(BadRequest(error1));
                }

                if (!string.IsNullOrEmpty(model.Password))
                {
                    model.PasswordHash = PasswordHasher.GetClientPassword(model.Password);
                }
            }
            model.FirstName = (model.FirstName ?? "").Trim();
            model.LastName  = (model.LastName ?? "").Trim();

            if (!CheckValidName(model.FirstName + model.LastName, out var error))
            {
                sw.Stop();

                return(BadRequest(error));
            }

            model.PortalName = (model.PortalName ?? "").Trim();

            if (!CheckExistingNamePortal(model.PortalName, out error))
            {
                sw.Stop();

                return(BadRequest(error));
            }

            Log.DebugFormat("PortalName = {0}; Elapsed ms. CheckExistingNamePortal: {1}", model.PortalName, sw.ElapsedMilliseconds);

            var clientIP = CommonMethods.GetClientIp();

            if (CommonMethods.CheckMuchRegistration(model, clientIP, sw))
            {
                return(BadRequest(new
                {
                    error = "tooMuchAttempts",
                    message = "Too much attempts already"
                }));
            }

            if (!CheckRecaptcha(model, clientIP, sw, out error))
            {
                return(BadRequest(error));
            }

            if (!CheckRegistrationPayment(out error))
            {
                return(BadRequest(error));
            }

            var language = model.Language ?? string.Empty;

            var tz = TimeZonesProvider.GetCurrentTimeZoneInfo(language);

            Log.DebugFormat("PortalName = {0}; Elapsed ms. TimeZonesProvider.GetCurrentTimeZoneInfo: {1}", model.PortalName, sw.ElapsedMilliseconds);

            if (!string.IsNullOrEmpty(model.TimeZoneName))
            {
                tz = TimeZoneConverter.GetTimeZone(model.TimeZoneName.Trim(), false) ?? tz;

                Log.DebugFormat("PortalName = {0}; Elapsed ms. TimeZonesProvider.OlsonTimeZoneToTimeZoneInfo: {1}", model.PortalName, sw.ElapsedMilliseconds);
            }

            var lang = TimeZonesProvider.GetCurrentCulture(language);

            Log.DebugFormat("PortalName = {0}; model.Language = {1}, resultLang.DisplayName = {2}", model.PortalName, language, lang.DisplayName);

            var info = new TenantRegistrationInfo
            {
                Name                = Configuration["web:portal-name"] ?? "Cloud Office Applications",
                Address             = model.PortalName,
                Culture             = lang,
                FirstName           = model.FirstName,
                LastName            = model.LastName,
                PasswordHash        = string.IsNullOrEmpty(model.PasswordHash) ? null : model.PasswordHash,
                Email               = (model.Email ?? "").Trim(),
                TimeZoneInfo        = tz,
                MobilePhone         = string.IsNullOrEmpty(model.Phone) ? null : model.Phone.Trim(),
                Industry            = (TenantIndustry)model.Industry,
                Spam                = model.Spam,
                Calls               = model.Calls,
                LimitedControlPanel = model.LimitedControlPanel
            };

            if (!string.IsNullOrEmpty(model.PartnerId))
            {
                if (Guid.TryParse(model.PartnerId, out _))
                {
                    // valid guid
                    info.PartnerId = model.PartnerId;
                }
            }

            if (!string.IsNullOrEmpty(model.AffiliateId))
            {
                info.AffiliateId = model.AffiliateId;
            }

            if (!string.IsNullOrEmpty(model.Campaign))
            {
                info.Campaign = model.Campaign;
            }

            Tenant t;

            try
            {
                /****REGISTRATION!!!*****/
                if (!string.IsNullOrEmpty(ApiSystemHelper.ApiCacheUrl))
                {
                    ApiSystemHelper.AddTenantToCache(info.Address, SecurityContext.CurrentAccount.ID);

                    Log.DebugFormat("PortalName = {0}; Elapsed ms. CacheController.AddTenantToCache: {1}", model.PortalName, sw.ElapsedMilliseconds);
                }

                HostedSolution.RegisterTenant(info, out t);

                /*********/

                Log.DebugFormat("PortalName = {0}; Elapsed ms. HostedSolution.RegisterTenant: {1}", model.PortalName, sw.ElapsedMilliseconds);
            }
            catch (Exception e)
            {
                sw.Stop();

                Log.Error(e);

                return(StatusCode(StatusCodes.Status500InternalServerError, new
                {
                    error = "registerNewTenantError",
                    message = e.Message,
                    stacktrace = e.StackTrace
                }));
            }

            var trialQuota = Configuration["trial-quota"];

            if (!string.IsNullOrEmpty(trialQuota))
            {
                if (int.TryParse(trialQuota, out var trialQuotaId))
                {
                    var dueDate = DateTime.MaxValue;
                    if (int.TryParse(Configuration["trial-due"], out var dueTrial))
                    {
                        dueDate = DateTime.UtcNow.AddDays(dueTrial);
                    }

                    var tariff = new Tariff
                    {
                        QuotaId = trialQuotaId,
                        DueDate = dueDate
                    };
                    HostedSolution.SetTariff(t.TenantId, tariff);
                }
            }


            var    isFirst = true;
            string sendCongratulationsAddress = null;

            if (!string.IsNullOrEmpty(model.PasswordHash))
            {
                isFirst = !CommonMethods.SendCongratulations(Request.Scheme, t, model.SkipWelcome, out sendCongratulationsAddress);
            }
            else if (Configuration["core:base-domain"] == "localhost")
            {
                try
                {
                    /* set wizard not completed*/
                    TenantManager.SetCurrentTenant(t);

                    var settings = SettingsManager.Load <WizardSettings>();

                    settings.Completed = false;

                    SettingsManager.Save(settings);
                }
                catch (Exception e)
                {
                    Log.Error(e);
                }
            }

            var reference = CommonMethods.CreateReference(Request.Scheme, t.GetTenantDomain(CoreSettings), info.Email, isFirst);

            Log.DebugFormat("PortalName = {0}; Elapsed ms. CreateReferenceByCookie...: {1}", model.PortalName, sw.ElapsedMilliseconds);

            sw.Stop();

            return(Ok(new
            {
                reference,
                tenant = CommonMethods.ToTenantWrapper(t),
                referenceWelcome = sendCongratulationsAddress
            }));
        }
Example #43
0
 public Tariff GetCurrentTariff()
 {
     return(PaymentManager.GetTariff(TenantManager.GetCurrentTenant().TenantId));
 }
        TenantManager BuildTenants(IWindsorContainer container, DocumentStoreConfiguration config)
        {
            _logger.Debug("Configuring tenants");
            var manager = new TenantManager(container.Kernel);
            container.Register(Component.For<ITenantAccessor, TenantManager>().Instance(manager));

            foreach (var settings in config.TenantSettings)
            {
                _logger.DebugFormat("Adding tenant {0}", settings.TenantId);

                var tenant = manager.AddTenant(settings);
                tenant.Container.Kernel.Resolver.AddSubResolver(new CollectionResolver(tenant.Container.Kernel, true));
                tenant.Container.Kernel.Resolver.AddSubResolver(new ArrayResolver(tenant.Container.Kernel, true));
                tenant.Container.AddFacility<StartableFacility>();

                container.AddChildContainer(tenant.Container);
            }

            return manager;
        }
Example #45
0
 public TenantQuota GetTenantQuota()
 {
     return(GetTenantQuota(TenantManager.GetCurrentTenant().TenantId));
 }
 public EditionAndFeature_Tests()
 {
     _editionManager = Resolve<EditionManager>();
     _tenantManager = Resolve<TenantManager>();
     _featureChecker = Resolve<FeatureChecker>();
 }
Example #47
0
 public TenantQuota GetTenantQuota(int tenant)
 {
     return(TenantManager.GetTenantQuota(tenant));
 }
 public SeguridadService(TenantManager tenantManager, UserManager userManager)
 {
     _tenantManager = tenantManager;
     _userManager = userManager;
 }
Example #49
0
 public IEnumerable <TenantQuota> GetTenantQuotas()
 {
     return(TenantManager.GetTenantQuotas());
 }
Example #50
0
 public TenantAppService(TenantManager tenantManager, IMapper mapper)
 {
     _tenantManager = tenantManager;
     _mapper        = mapper;
 }
Example #51
0
        public void RunJob(DistributedTask _, CancellationToken cancellationToken)
        {
            try
            {
                CancellationToken = cancellationToken;

                SetProgress(5, "Setup tenant");

                TenantManager.SetCurrentTenant(CurrentTenant);

                SetProgress(10, "Setup user");

                SecurityContext.AuthenticateMe(CurrentUser); //Core.Configuration.Constants.CoreSystem);

                SetProgress(15, "Find user data");

                var currentUser = UserManager.GetUsers(SecurityContext.CurrentAccount.ID);

                SetProgress(20, "Create mime message");

                var toAddress = new MailboxAddress(currentUser.UserName, currentUser.Email);

                var fromAddress = new MailboxAddress(SmtpSettings.SenderDisplayName, SmtpSettings.SenderAddress);

                var mimeMessage = new MimeMessage
                {
                    Subject = messageSubject
                };

                mimeMessage.From.Add(fromAddress);

                mimeMessage.To.Add(toAddress);

                var bodyBuilder = new BodyBuilder
                {
                    TextBody = messageBody
                };

                mimeMessage.Body = bodyBuilder.ToMessageBody();

                mimeMessage.Headers.Add("Auto-Submitted", "auto-generated");

                using var client = GetSmtpClient();
                SetProgress(40, "Connect to host");

                client.Connect(SmtpSettings.Host, SmtpSettings.Port.GetValueOrDefault(25),
                               SmtpSettings.EnableSSL ? SecureSocketOptions.Auto : SecureSocketOptions.None, cancellationToken);

                if (SmtpSettings.EnableAuth)
                {
                    SetProgress(60, "Authenticate");

                    client.Authenticate(SmtpSettings.CredentialsUserName,
                                        SmtpSettings.CredentialsUserPassword, cancellationToken);
                }

                SetProgress(80, "Send test message");

                client.Send(FormatOptions.Default, mimeMessage, cancellationToken);
            }
            catch (AuthorizingException authError)
            {
                Error = Resource.ErrorAccessDenied; // "No permissions to perform this action";
                Logger.Error(Error, new SecurityException(Error, authError));
            }
            catch (AggregateException ae)
            {
                ae.Flatten().Handle(e => e is TaskCanceledException || e is OperationCanceledException);
            }
            catch (SocketException ex)
            {
                Error = ex.Message; //TODO: Add translates of ordinary cases
                Logger.Error(ex.ToString());
            }
            catch (AuthenticationException ex)
            {
                Error = ex.Message; //TODO: Add translates of ordinary cases
                Logger.Error(ex.ToString());
            }
            catch (Exception ex)
            {
                Error = ex.Message; //TODO: Add translates of ordinary cases
                Logger.Error(ex.ToString());
            }
            finally
            {
                try
                {
                    TaskInfo.SetProperty(FINISHED, true);
                    PublishTaskInfo();

                    SecurityContext.Logout();
                }
                catch (Exception ex)
                {
                    Logger.ErrorFormat("LdapOperation finalization problem. {0}", ex);
                }
            }
        }
Example #52
0
 public AccountController(
     TenantManager tenantManager
     )
 {
     _tenantManager = tenantManager;
 }
 public EventStoreInstaller(TenantManager manager, DocumentStoreConfiguration config)
 {
     _manager = manager;
     _config = config;
 }