Ejemplo n.º 1
0
        protected static bool DisplayModule(ManagementType module)
        {
            if (!SetupInfo.IsVisibleSettings(module.ToString()))
            {
                return(false);
            }

            switch (module)
            {
            case ManagementType.Migration:
                return(TransferPortal.TransferRegions.Count > 1);

            case ManagementType.Backup:
                return(!TenantAccessSettings.Load().Anyone);

            case ManagementType.DeletionPortal:
                //only SaaS or Server+ControlPanel
                return(!CoreContext.Configuration.Standalone || TenantExtra.Enterprise && CoreContext.TenantManager.GetTenants().Count() > 1);

            case ManagementType.MailService:
                //only if MailServer available
                return(SetupInfo.IsVisibleSettings("AdministrationPage"));

            case ManagementType.PrivacyRoom:
                return(PrivacyRoomSettings.Available);
            }

            return(true);
        }
Ejemplo n.º 2
0
 private static void CheckSmtpPermissions()
 {
     if (!SetupInfo.IsVisibleSettings(ManagementType.SmtpSettings.ToString()))
     {
         throw new BillingException(Resource.ErrorNotAllowedOption, "Smtp");
     }
 }
Ejemplo n.º 3
0
        public void Test(SmtpSettingsModel settings)
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            if (!SetupInfo.IsVisibleSettings(ManagementType.SmtpSettings.ToString()))
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "Smtp");
            }

            var config = ToSmtpSettingsConfig(settings);

            using (var smtpClient = new SmtpClient(config.Host, config.Port))
            {
                smtpClient.Timeout        = (int)TimeSpan.FromSeconds(10).TotalMilliseconds;
                smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
                smtpClient.EnableSsl      = config.EnableSSL;

                if (config.IsRequireAuthentication)
                {
                    smtpClient.UseDefaultCredentials = false;
                    smtpClient.Credentials           = new NetworkCredential(config.CredentialsUserName, config.CredentialsUserPassword);
                }

                var currentUser = CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID);
                var toAddress   = new MailAddress(currentUser.Email);
                var fromAddress = new MailAddress(config.SenderAddress, config.SenderDisplayName);
                var mailMessage = new MailMessage(fromAddress, toAddress)
                {
                    Subject = Core.Notify.WebstudioPatternResource.subject_smtp_test,
                    Body    = Core.Notify.WebstudioPatternResource.pattern_smtp_test
                };

                smtpClient.Send(mailMessage);
            }
        }
Ejemplo n.º 4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //timezone & language
            _timelngHolder.Controls.Add(LoadControl(TimeAndLanguage.Location));

            if (SetupInfo.IsVisibleSettings <PromoCode>() &&
                TenantExtra.GetCurrentTariff().State == ASC.Core.Billing.TariffState.Trial &&
                string.IsNullOrEmpty(CoreContext.TenantManager.GetCurrentTenant().PartnerId))
            {
                promoCodeSettings.Controls.Add(LoadControl(PromoCode.Location));
            }

            //dns
            if (SetupInfo.IsVisibleSettings <DnsSettings.DnsSettings>())
            {
                _dnsSettings.Controls.Add(LoadControl(DnsSettings.DnsSettings.Location));
            }

            //Portal version
            if (SetupInfo.IsVisibleSettings <VersionSettings.VersionSettings>() && 1 < CoreContext.TenantManager.GetTenantVersions().Count())
            {
                _portalVersionSettings.Controls.Add(LoadControl(VersionSettings.VersionSettings.Location));
            }

            //greeting settings
            _greetingSettings.Controls.Add(LoadControl(GreetingSettings.Location));

            //portal rename control
            _portalRename.Controls.Add(LoadControl(PortalRename.Location));
        }
        protected static bool DisplayModule(ManagementType module)
        {
            if (!SetupInfo.IsVisibleSettings(module.ToString()))
            {
                return(false);
            }

            switch (module)
            {
            case ManagementType.Migration:
                return(TransferPortal.TransferRegions.Count > 1);

            case ManagementType.Backup:
                //only SaaS features
                return(!CoreContext.Configuration.Standalone &&
                       !SettingsManager.Instance.LoadSettings <TenantAccessSettings>(TenantProvider.CurrentTenantID).Anyone);

            case ManagementType.AuditTrail:
            case ManagementType.LoginHistory:
            case ManagementType.LdapSettings:
            case ManagementType.WhiteLabel:
            case ManagementType.SingleSignOnSettings:
                //only SaaS features
                return(!CoreContext.Configuration.Standalone);

            case ManagementType.DeletionPortal:
                //only SaaS or Server+ControlPanel
                return(!CoreContext.Configuration.Standalone || !string.IsNullOrEmpty(SetupInfo.ControlPanelUrl));
            }

            return(true);
        }
        public MailboxData CreateMyMailbox(string name)
        {
            if (!SetupInfo.IsVisibleSettings("AdministrationPage") || !SetupInfo.IsVisibleSettings("MailCommonDomain") || CoreContext.Configuration.Standalone)
            {
                throw new Exception("Common domain is not available");
            }

            var domain = MailServer.GetWebDomains(MailServerFactory).FirstOrDefault(x => x.Tenant == Defines.SHARED_TENANT_ID);

            if (domain == null)
            {
                throw new SecurityException("Domain not found.");
            }

            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentException(@"Invalid mailbox name.", "name");
            }

            var teamlabAccount = CoreContext.Authentication.GetAccountByID(SecurityContext.CurrentAccount.ID);

            if (teamlabAccount == null)
            {
                throw new InvalidDataException("Unknown user.");
            }

            var userInfo = CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID);

            if (userInfo.IsVisitor())
            {
                throw new InvalidDataException("User is visitor.");
            }

            if (name.Length > 64)
            {
                throw new ArgumentException(@"Local part of mailbox localpart exceed limitation of 64 characters.", "name");
            }

            if (!Parser.IsEmailLocalPartValid(name))
            {
                throw new ArgumentException("Incorrect mailbox name.");
            }

            var mailboxName = name.ToLowerInvariant();

            var login = string.Format("{0}@{1}", mailboxName, domain.Name);

            var password = PasswordGenerator.GenerateNewPassword(12);

            var account = MailServerFactory.CreateMailAccount(teamlabAccount, login);

            var mailbox = MailServer.CreateMailbox(mailboxName, password, domain, account, MailServerFactory);

            if (IsSignalRAvailable)
            {
                MailBoxManager.UpdateUserActivity(TenantId, UserId);
            }

            return(mailbox.ToMailboxData());
        }
Ejemplo n.º 7
0
        protected static bool DisplayModule(ManagementType module)
        {
            var tenantAccessAnyone = SettingsManager.Instance.LoadSettings <TenantAccessSettings>(TenantProvider.CurrentTenantID);

            switch (module)
            {
            case ManagementType.Migration:
                return(SetupInfo.IsVisibleSettings(module.ToString()) && TransferPortal.TransferRegions.Count > 1);

            case ManagementType.Backup:
                //only SaaS features
                return(!CoreContext.Configuration.Standalone &&
                       !tenantAccessAnyone.Anyone && SetupInfo.IsVisibleSettings(module.ToString()));

            case ManagementType.AuditTrail:
            case ManagementType.LoginHistory:
            case ManagementType.LdapSettings:
            case ManagementType.DeletionPortal:
                //only SaaS features
                return(!CoreContext.Configuration.Standalone && SetupInfo.IsVisibleSettings(module.ToString()));

            case ManagementType.WhiteLabel:
                return(Web.UserControls.WhiteLabel.WhiteLabel.AvailableControl);

            case ManagementType.SingleSignOnSettings:
                return(!CoreContext.Configuration.Standalone);

            default:
                return(SetupInfo.IsVisibleSettings(module.ToString()));
            }
        }
Ejemplo n.º 8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Page.RegisterBodyScripts("~/usercontrols/Management/PortalRename/js/portalrename.js");
            Page.RegisterStyle("~/usercontrols/management/PortalRename/css/portalrename.less");

            Enabled = SetupInfo.IsVisibleSettings("PortalRename");
        }
Ejemplo n.º 9
0
        public IEnumerable <AuditEventWrapper> GetAuditEventsByFilter(Guid userId,
                                                                      ProductType productType,
                                                                      ModuleType moduleType,
                                                                      ActionType actionType,
                                                                      MessageAction action,
                                                                      EntryType entryType,
                                                                      string target,
                                                                      ApiDateTime from,
                                                                      ApiDateTime to)
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            var startIndex = (int)Context.StartIndex;
            var limit      = (int)Context.Count;

            Context.SetDataPaginated();

            action = action == 0 ? MessageAction.None : action;

            if (!TenantExtra.GetTenantQuota().Audit || !SetupInfo.IsVisibleSettings(ManagementType.LoginHistory.ToString()))
            {
                return(GetLastAuditEvents());
            }
            else
            {
                DemandAuditPermission();

                return(AuditEventsRepository.GetByFilter(userId, productType, moduleType, actionType, action, entryType, target, from, to, startIndex, limit).Select(x => new AuditEventWrapper(x)));
            }
        }
Ejemplo n.º 10
0
        public string CreateAuditTrailReport()
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            var tenantId = TenantProvider.CurrentTenantID;

            if (!SetupInfo.IsVisibleSettings(ManagementType.AuditTrail.ToString()) ||
                CoreContext.Configuration.Standalone && !CoreContext.TenantManager.GetTenantQuota(tenantId).Audit)
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "Audit");
            }

            var settings = TenantAuditSettings.LoadForTenant(tenantId);

            var to   = DateTime.UtcNow;
            var from = to.Subtract(TimeSpan.FromDays(settings.AuditTrailLifeTime));

            var reportName = string.Format(AuditReportResource.AuditTrailReportName + ".csv", from.ToString("MM.dd.yyyy"), to.ToString("MM.dd.yyyy"));

            var events = AuditEventsRepository.Get(tenantId, from, to);
            var result = AuditReportCreator.CreateCsvReport(events, reportName);

            MessageService.Send(Request, MessageAction.AuditTrailReportDownloaded);
            return(result);
        }
Ejemplo n.º 11
0
        public QuotaWrapper(Tenant tenant, CoreBaseSettings coreBaseSettings, CoreConfiguration configuration, TenantExtra tenantExtra, TenantStatisticsProvider tenantStatisticsProvider, AuthContext authContext, SettingsManager settingsManager, WebItemManager webItemManager)
        {
            TenantExtra = tenantExtra;
            TenantStatisticsProvider = tenantStatisticsProvider;
            WebItemManager           = webItemManager;
            var quota     = TenantExtra.GetTenantQuota();
            var quotaRows = TenantStatisticsProvider.GetQuotaRows(tenant.TenantId).ToList();

            StorageSize   = (ulong)Math.Max(0, quota.MaxTotalSize);
            UsedSize      = (ulong)Math.Max(0, quotaRows.Sum(r => r.Counter));
            MaxUsersCount = TenantExtra.GetTenantQuota().ActiveUsers;
            UsersCount    = coreBaseSettings.Personal ? 1 : TenantStatisticsProvider.GetUsersCount();

            StorageUsage = quotaRows
                           .Select(x => new QuotaUsage {
                Path = x.Path.TrimStart('/').TrimEnd('/'), Size = x.Counter,
            })
                           .ToList();

            if (coreBaseSettings.Personal && SetupInfo.IsVisibleSettings("PersonalMaxSpace"))
            {
                UserStorageSize = configuration.PersonalMaxSpace(settingsManager);

                var webItem = WebItemManager[WebItemManager.DocumentsProductID];
                if (webItem.Context.SpaceUsageStatManager is IUserSpaceUsage spaceUsageManager)
                {
                    UserUsedSize = spaceUsageManager.GetUserSpaceUsage(authContext.CurrentAccount.ID);
                }
            }

            MaxFileSize = Math.Min(AvailableSize, (ulong)quota.MaxFileSize);
        }
Ejemplo n.º 12
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (CoreContext.Configuration.Standalone || !SetupInfo.IsVisibleSettings(ManagementType.LdapSettings.ToString()))
            {
                Response.Redirect(CommonLinkUtility.GetDefault(), true);
                return;
            }

            AjaxPro.Utility.RegisterTypeForAjax(typeof(LdapSettings), Page);
            Page.RegisterStyle(
                "~/UserControls/Management/LdapSettings/css/Default/ldapsettings.css",
                "~/UserControls/Management/LdapSettings/css/Default/jqCron.css");

            Page.RegisterBodyScripts(
                "~/js/third-party/moment.min.js", "~/js/third-party/moment-timezone.min.js",
                "~/js/third-party/jquery/jquery.cron.js",
                "~/UserControls/Management/LdapSettings/js/ldapsettings.js"
                );
            ldapSettingsConfirmContainerId.Options.IsPopup             = true;
            ldapSettingsLimitPanelId.Options.IsPopup                   = true;
            ldapSettingsCronPanel.Options.IsPopup                      = true;
            ldapSettingsCronTurnOffContainer.Options.IsPopup           = true;
            ldapSettingsTurnOffContainer.Options.IsPopup               = true;
            ldapSettingsCertificateValidationContainer.Options.IsPopup = true;

            Settings = ActiveDirectory.Base.Settings.LdapSettings.Load();

            LdapMapping = JsonConvert.SerializeObject(Settings.LdapMapping, Formatting.Indented).ToString();
        }
Ejemplo n.º 13
0
        public static QuotaWrapper GetCurrent()
        {
            var quota     = TenantExtra.GetTenantQuota();
            var quotaRows = TenantStatisticsProvider.GetQuotaRows(TenantProvider.CurrentTenantID).ToList();

            var result = new QuotaWrapper
            {
                StorageSize   = (ulong)Math.Max(0, quota.MaxTotalSize),
                UsedSize      = (ulong)Math.Max(0, quotaRows.Sum(r => r.Counter)),
                MaxUsersCount = TenantExtra.GetTenantQuota().ActiveUsers,
                UsersCount    = CoreContext.Configuration.Personal ? 1 : TenantStatisticsProvider.GetUsersCount(),

                StorageUsage = quotaRows
                               .Select(x => new QuotaUsage {
                    Path = x.Path.TrimStart('/').TrimEnd('/'), Size = x.Counter,
                })
                               .ToList()
            };

            if (CoreContext.Configuration.Personal && SetupInfo.IsVisibleSettings("PersonalMaxSpace"))
            {
                result.UserStorageSize = CoreContext.Configuration.PersonalMaxSpace;

                var webItem           = WebItemManager.Instance[WebItemManager.DocumentsProductID];
                var spaceUsageManager = webItem.Context.SpaceUsageStatManager as IUserSpaceUsage;
                if (spaceUsageManager != null)
                {
                    result.UserUsedSize = spaceUsageManager.GetUserSpaceUsage(SecurityContext.CurrentAccount.ID);
                }
            }

            result.MaxFileSize = Math.Min(result.AvailableSize, (ulong)quota.MaxFileSize);
            return(result);
        }
Ejemplo n.º 14
0
 private static void DemandBaseAuditPermission()
 {
     if (!CoreContext.Configuration.Standalone &&
         !SetupInfo.IsVisibleSettings(ManagementType.LoginHistory.ToString()))
     {
         throw new BillingException(Resource.ErrorNotAllowedOption, "Audit");
     }
 }
Ejemplo n.º 15
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (CoreContext.Configuration.Standalone || !SetupInfo.IsVisibleSettings(ManagementType.SingleSignOnSettings.ToString()))
            {
                Response.Redirect(CommonLinkUtility.GetDefault(), true);
                return;
            }

            AjaxPro.Utility.RegisterTypeForAjax(typeof(SingleSignOnSettings), Page);
            Page.RegisterBodyScripts(
                "~/js/uploader/jquery.fileupload.js",
                "~/UserControls/Management/SingleSignOnSettings/js/singlesignonsettings.js"
                );

            try
            {
                Settings        = SsoSettingsV2.Load();
                DefaultSettings = new SsoSettingsV2().GetDefault() as SsoSettingsV2;
                Constants       = new
                {
                    SsoNameIdFormatType         = new SsoNameIdFormatType(),
                    SsoBindingType              = new SsoBindingType(),
                    SsoSigningAlgorithmType     = new SsoSigningAlgorithmType(),
                    SsoEncryptAlgorithmType     = new SsoEncryptAlgorithmType(),
                    SsoSpCertificateActionType  = new SsoSpCertificateActionType(),
                    SsoIdpCertificateActionType = new SsoIdpCertificateActionType()
                };
                Metadata = new SsoMetadata();

                isSsoPost     = (Settings.IdpSettings.SsoBinding == "" || Settings.IdpSettings.SsoBinding == SsoBindingType.Saml20HttpPost);
                isSsoRedirect = Settings.IdpSettings.SsoBinding == SsoBindingType.Saml20HttpRedirect;

                isSloPost     = (Settings.IdpSettings.SloBinding == "" || Settings.IdpSettings.SloBinding == SsoBindingType.Saml20HttpPost);
                isSloRedirect = (Settings.IdpSettings.SloBinding == SsoBindingType.Saml20HttpRedirect);
            }
            catch (Exception ex)
            {
                ErrorMessage = ex.Message;
            }
            ssoSpCertificatePopupContainer.Options.IsPopup  = true;
            ssoIdpCertificatePopupContainer.Options.IsPopup = true;
            ssoSettingsInviteContainer.Options.IsPopup      = true;
            ssoSettingsTurnOffContainer.Options.IsPopup     = true;

            HelpLink = CommonLinkUtility.GetHelpLink();

            var script = string.Format("SsoSettings.init({0},{1},{2},{3},{4})",
                                       JsonConvert.SerializeObject(Settings),
                                       JsonConvert.SerializeObject(DefaultSettings),
                                       JsonConvert.SerializeObject(Constants),
                                       JsonConvert.SerializeObject(Metadata),
                                       JsonConvert.SerializeObject(ErrorMessage));

            if (isAvailable)
            {
                Page.RegisterInlineScript(script);
            }
        }
Ejemplo n.º 16
0
        protected string GetMailConstantsAsInlineScript()
        {
            var sbScript = new StringBuilder();

            sbScript
            .AppendFormat("ASC.Mail.Constants.CHECK_NEWS_TIMEOUT = {0};\r\n",
                          JsonConvert.SerializeObject(GetMailCheckNewsTimeout()))
            .AppendFormat("ASC.Mail.Constants.CRM_AVAILABLE = {0};\r\n",
                          JsonConvert.SerializeObject(IsCrmAvailable()))
            .AppendFormat("ASC.Mail.Constants.PEOPLE_AVAILABLE = {0};\r\n",
                          JsonConvert.SerializeObject(IsPeopleAvailable()))
            .AppendFormat("ASC.Mail.Constants.CALENDAR_AVAILABLE = {0};\r\n",
                          JsonConvert.SerializeObject(IsCalndarAvailable()))
            .AppendFormat("ASC.Mail.Constants.COMMON_DOMAIN_AVAILABLE = {0};\r\n",
                          JsonConvert.SerializeObject(IsMailCommonDomainAvailable()))
            .AppendFormat("ASC.Mail.Constants.PRINT_AVAILABLE = {0};\r\n",
                          JsonConvert.SerializeObject(IsMailPrintAvailable()))
            .AppendFormat("ASC.Mail.Constants.FAQ_URL = {0};\r\n",
                          JsonConvert.SerializeObject(GetMailFaqUri()))
            .AppendFormat("ASC.Mail.Constants.SUPPORT_URL = {0};\r\n",
                          JsonConvert.SerializeObject(GetMailSupportUri()))
            .AppendFormat("ASC.Mail.Constants.DOWNLOAD_HANDLER_URL = {0};\r\n",
                          JsonConvert.SerializeObject(GetMailDownloadHandlerUri()))
            .AppendFormat("ASC.Mail.Constants.VIEW_DOCUMENT_HANDLER_URL = {0};\r\n",
                          JsonConvert.SerializeObject(GetMailViewDocumentHandlerUri()))
            .AppendFormat("ASC.Mail.Constants.EDIT_DOCUMENT_HANDLER_URL = {0};\r\n",
                          JsonConvert.SerializeObject(GetMailEditDocumentHandlerUri()))
            .AppendFormat("ASC.Mail.Constants.CONTACT_PHOTO_HANDLER_URL = {0};\r\n",
                          JsonConvert.SerializeObject(GetMailContactPhotoHandlerUri()))
            .AppendFormat("ASC.Mail.Constants.Errors = {0};\r\n",
                          JsonConvert.SerializeObject(GetErrorConstants()))
            .AppendFormat("ASC.Mail.Constants.Alerts = {0};\r\n",
                          JsonConvert.SerializeObject(GetAlerts()))
            .AppendFormat("ASC.Mail.Constants.MAIL_DAEMON_EMAIL = {0};\r\n",
                          JsonConvert.SerializeObject(GetMailDaemonEmail()))
            .AppendFormat("ASC.Mail.Constants.FiLTER_BY_GROUP_LOCALIZE = {0};\r\n",
                          JsonConvert.SerializeObject(CustomNamingPeople.Substitute <MailResource>("FilterByGroup").HtmlEncode()))
            .AppendFormat("ASC.Mail.Constants.NEED_PROXY_HTTP_URL = {0};\r\n",
                          JsonConvert.SerializeObject(SetupInfo.IsVisibleSettings("ProxyHttpContent")))
            .AppendFormat("ASC.Mail.Constants.PROXY_HTTP_URL = {0};\r\n",
                          JsonConvert.SerializeObject(GetProxyHttpUrl()))
            .AppendFormat("ASC.Mail.Constants.PASSWORD_SETTINGS = {0};\r\n",
                          JsonConvert.SerializeObject(PasswordSettings.Load()))
            .AppendFormat("ASC.Mail.Constants.MAXIMUM_MESSAGE_BODY_SIZE = {0};\r\n",
                          JsonConvert.SerializeObject(GetMaximumMessageBodySize()))
            .AppendFormat("ASC.Mail.Constants.MS_MIGRATION_LINK_AVAILABLE = {0};\r\n",
                          JsonConvert.SerializeObject(IsMSExchangeMigrationLinkAvailable()))
            .AppendFormat("ASC.Mail.Constants.ENABLE_MAIL_SERVER = {0};\r\n",
                          JsonConvert.SerializeObject(IsEnableMailServer()))
            .AppendFormat("ASC.Mail.Constants.LinkToTariff = {0};\r\n",
                          JsonConvert.SerializeObject(LinkToTariff()))
            .AppendFormat("ASC.Mail.Constants.IMAP_SYNC_START_DATE = {0};\r\n",
                          JsonConvert.SerializeObject(GetImapSyncStartDate()));


            return(sbScript.ToString());
        }
Ejemplo n.º 17
0
        private void DemandPermissionsRestore()
        {
            PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            if (!SetupInfo.IsVisibleSettings("Restore"))
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "Restore");
            }
        }
Ejemplo n.º 18
0
        private static void DemandPermissionsBackup()
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            if (!SetupInfo.IsVisibleSettings(ManagementType.Backup.ToString()))
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "Backup");
            }
        }
Ejemplo n.º 19
0
 public TenantAuditSettings GetAuditSettings()
 {
     if (!SetupInfo.IsVisibleSettings(ManagementType.LoginHistory.ToString()))
     {
         throw new BillingException(Resource.ErrorNotAllowedOption, "Audit");
     }
     SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
     return(TenantAuditSettings.LoadForTenant(TenantProvider.CurrentTenantID));
 }
Ejemplo n.º 20
0
        protected void Page_Load(object sender, EventArgs e)
        {
            AjaxPro.Utility.RegisterTypeForAjax(GetType());

            //transfer portal
            _transferPortalSettings.Controls.Add(LoadControl(TransferPortal.Location));

            //timezone & language
            _timelngHolder.Controls.Add(LoadControl(TimeAndLanguage.Location));

            if (SetupInfo.IsVisibleSettings <PromoCode>() &&
                TenantExtra.GetCurrentTariff().State == ASC.Core.Billing.TariffState.Trial &&
                string.IsNullOrEmpty(CoreContext.TenantManager.GetCurrentTenant().PartnerId))
            {
                promoCodeSettings.Controls.Add(LoadControl(PromoCode.Location));
            }

            //Portal version
            if (SetupInfo.IsVisibleSettings <VersionSettings.VersionSettings>() && 1 < CoreContext.TenantManager.GetTenantVersions().Count())
            {
                _portalVersionSettings.Controls.Add(LoadControl(VersionSettings.VersionSettings.Location));
            }

            //main domain settings
            _mailDomainSettings.Controls.Add(LoadControl(MailDomainSettings.Location));

            //strong security password settings
            _strongPasswordSettings.Controls.Add(LoadControl(PasswordSettings.Location));

            //invitational link
            invLink.Controls.Add(LoadControl(InviteLink.Location));

            //sms settings
            var loadSms   = true;
            var partnerId = CoreContext.TenantManager.GetCurrentTenant().PartnerId;

            if (!string.IsNullOrEmpty(partnerId))
            {
                var partner = CoreContext.PaymentManager.GetPartner(partnerId);

                if (partner != null && partner.Status == PartnerStatus.Approved && !partner.Removed && partner.PartnerType != PartnerType.System)
                {
                    loadSms = false;
                }
            }
            if (StudioSmsNotificationSettings.IsVisibleSettings && loadSms)
            {
                _smsValidationSettings.Controls.Add(LoadControl(SmsValidationSettings.Location));
            }

            //admin message settings
            _admMessSettings.Controls.Add(LoadControl(AdminMessageSettings.Location));

            //default page settings
            _defaultPageSeettings.Controls.Add(LoadControl(DefaultPageSettings.Location));
        }
Ejemplo n.º 21
0
        public IEnumerable <AuditEventWrapper> GetLastAuditEvents()
        {
            if (!SetupInfo.IsVisibleSettings(ManagementType.AuditTrail.ToString()))
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "Audit");
            }
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            return(AuditEventsRepository.GetLast(TenantProvider.CurrentTenantID, 20).Select(x => new AuditEventWrapper(x)));
        }
Ejemplo n.º 22
0
        private void DemandPermissionsRestore()
        {
            PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            if (!SetupInfo.IsVisibleSettings("Restore") ||
                (!CoreBaseSettings.Standalone && !TenantManager.GetTenantQuota(TenantManager.GetCurrentTenant().TenantId).Restore))
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "Restore");
            }
        }
Ejemplo n.º 23
0
        private static void DemandPermissionsRestore()
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            if (!SetupInfo.IsVisibleSettings("Restore") ||
                (!CoreContext.Configuration.Standalone && !CoreContext.TenantManager.GetTenantQuota(TenantProvider.CurrentTenantID).Restore))
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "Restore");
            }
        }
Ejemplo n.º 24
0
        private static void DemandPermissionsRestore()
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            if (!SetupInfo.IsVisibleSettings("Restore") ||
                !TenantExtra.GetTenantQuota().HasBackup)
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "Restore");
            }
        }
        private static void CheckLdapPermissions()
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            if ((!SetupInfo.IsVisibleSettings(ManagementType.LdapSettings.ToString()) && !CoreContext.Configuration.Standalone) ||
                !CoreContext.TenantManager.GetTenantQuota(TenantProvider.CurrentTenantID).Ldap)
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "Ldap");
            }
        }
Ejemplo n.º 26
0
        public AjaxResponse SaveDnsSettings(string dnsName, bool enableDns)
        {
            var resp = new AjaxResponse {
                rs1 = "1"
            };

            try
            {
                if (!SetupInfo.IsVisibleSettings <DnsSettings>())
                {
                    throw new Exception(Resource.ErrorNotAllowedOption);
                }

                SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

                var tenant = CoreContext.TenantManager.GetCurrentTenant();

                if (!enableDns || string.IsNullOrEmpty(dnsName))
                {
                    dnsName = null;
                }
                if (dnsName == null || CheckCustomDomain(dnsName))
                {
                    if (CoreContext.Configuration.Standalone)
                    {
                        tenant.MappedDomain = dnsName;
                        CoreContext.TenantManager.SaveTenant(tenant);
                        return(resp);
                    }

                    //TODO: unreachable code
                    if (tenant.MappedDomain != dnsName)
                    {
                        var portalAddress = string.Format("http://{0}.{1}", tenant.TenantAlias ?? String.Empty, CoreContext.Configuration.BaseDomain);

                        var u = CoreContext.UserManager.GetUsers(tenant.OwnerId);
                        StudioNotifyService.Instance.SendMsgDnsChange(tenant, GenerateDnsChangeConfirmUrl(u.Email, dnsName, tenant.TenantAlias, ConfirmType.DnsChange), portalAddress, dnsName);
                        resp.rs2 = string.Format(Resource.DnsChangeMsg, string.Format("<a href=\"mailto:{0}\">{0}</a>", u.Email.HtmlEncode()));

                        MessageService.Send(HttpContext.Current.Request, MessageAction.DnsSettingsUpdated);
                    }
                }
                else
                {
                    resp.rs1 = "0";
                    resp.rs2 = Resource.ErrorNotCorrectTrustedDomain;
                }
            }
            catch (Exception e)
            {
                resp.rs1 = "0";
                resp.rs2 = e.Message.HtmlEncode();
            }
            return(resp);
        }
Ejemplo n.º 27
0
        public bool SaveAuthKeys(List <AuthKey> authKeys)
        {
            SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
            if (!SetupInfo.IsVisibleSettings(ManagementType.ThirdPartyAuthorization.ToString()))
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "ThirdPartyAuthorization");
            }

            var changed = false;

            var mapKeys = new Dictionary <string, List <KeyElement> >();

            foreach (var authKey in authKeys.Where(authKey => KeyStorage.Get(authKey.Name) != authKey.Value))
            {
                var keyElement = ConsumerConfigurationSection.GetSection().Keys.GetKey(authKey.Name);

                if (keyElement != null && Providers.ContainsKey(keyElement.ConsumerName))
                {
                    RemoveOldNumberFromTwilio(Providers[keyElement.ConsumerName]);

                    if (!string.IsNullOrEmpty(authKey.Value))
                    {
                        if (!mapKeys.ContainsKey(keyElement.ConsumerName))
                        {
                            mapKeys.Add(keyElement.ConsumerName, new List <KeyElement>());
                        }
                        mapKeys[keyElement.ConsumerName].Add(keyElement);
                    }
                }


                KeyStorage.Set(authKey.Name, authKey.Value);
                changed = true;
            }

            foreach (var providerKeys in mapKeys)
            {
                if (!Providers[providerKeys.Key].ValidateKeys())
                {
                    foreach (var providerKey in providerKeys.Value)
                    {
                        KeyStorage.Set(providerKey.Name, null);
                    }
                    throw new ArgumentException(Resource.ErrorBadKeys);
                }
            }

            if (changed)
            {
                MessageService.Send(HttpContext.Current.Request, MessageAction.AuthorizationKeysSetting);
            }

            return(changed);
        }
Ejemplo n.º 28
0
        public IEnumerable <EventWrapper> GetLastAuditEvents()
        {
            PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);

            if (!SetupInfo.IsVisibleSettings(ManagementType.LoginHistory.ToString()) || CoreBaseSettings.Standalone && !TenantExtra.GetTenantQuota().Audit)
            {
                throw new BillingException(Resource.ErrorNotAllowedOption, "Audit");
            }

            return(AuditEventsRepository.GetLast(TenantManager.GetCurrentTenant().TenantId, 20).Select(x => new EventWrapper(x)));
        }
Ejemplo n.º 29
0
        public long GetMaxUploadSize(object folderId, bool chunkedUpload)
        {
            var tmp = long.MaxValue;

            if (CoreContext.Configuration.Personal && SetupInfo.IsVisibleSettings("PersonalMaxSpace"))
            {
                tmp = CoreContext.Configuration.PersonalMaxSpace - Global.GetUserUsedSpace();
            }

            return(Math.Min(tmp, chunkedUpload ? SetupInfo.MaxChunkedUploadSize : SetupInfo.MaxUploadSize));
        }
Ejemplo n.º 30
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!SetupInfo.IsVisibleSettings(ManagementType.Storage.ToString()))
            {
                Response.Redirect(CommonLinkUtility.GetDefault(), true);
                return;
            }

            Page.RegisterBodyScripts("~/UserControls/Management/StorageSettings/js/storageSettings.js");
            Page.RegisterStyle("~/UserControls/Management/StorageSettings/css/storageSettings.less");
        }