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); }
private static void CheckSmtpPermissions() { if (!SetupInfo.IsVisibleSettings(ManagementType.SmtpSettings.ToString())) { throw new BillingException(Resource.ErrorNotAllowedOption, "Smtp"); } }
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); } }
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()); }
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())); } }
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"); }
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))); } }
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); }
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); }
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(); }
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); }
private static void DemandBaseAuditPermission() { if (!CoreContext.Configuration.Standalone && !SetupInfo.IsVisibleSettings(ManagementType.LoginHistory.ToString())) { throw new BillingException(Resource.ErrorNotAllowedOption, "Audit"); } }
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); } }
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()); }
private void DemandPermissionsRestore() { PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings); if (!SetupInfo.IsVisibleSettings("Restore")) { throw new BillingException(Resource.ErrorNotAllowedOption, "Restore"); } }
private static void DemandPermissionsBackup() { SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings); if (!SetupInfo.IsVisibleSettings(ManagementType.Backup.ToString())) { throw new BillingException(Resource.ErrorNotAllowedOption, "Backup"); } }
public TenantAuditSettings GetAuditSettings() { if (!SetupInfo.IsVisibleSettings(ManagementType.LoginHistory.ToString())) { throw new BillingException(Resource.ErrorNotAllowedOption, "Audit"); } SecurityContext.DemandPermissions(SecutiryConstants.EditPortalSettings); return(TenantAuditSettings.LoadForTenant(TenantProvider.CurrentTenantID)); }
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)); }
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))); }
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"); } }
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"); } }
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"); } }
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); }
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); }
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))); }
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)); }
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"); }