[Read("", false, false)] //NOTE: this method doesn't requires auth!!!  //NOTE: this method doesn't check payment!!!
        public CapabilitiesData GetPortalCapabilities()
        {
            try
            {
                bool ldapEnabled;

                if (!SetupInfo.IsVisibleSettings(ManagementType.LdapSettings.ToString()) ||
                    (CoreContext.Configuration.Standalone &&
                     !CoreContext.TenantManager.GetTenantQuota(TenantProvider.CurrentTenantID).Ldap))
                {
                    ldapEnabled = false;
                }
                else
                {
                    var settings = LdapSettings.Load();

                    ldapEnabled = settings.EnableLdapAuthentication;
                }

                string ssoUrl   = string.Empty;
                string ssoLabel = string.Empty;

                if (!SetupInfo.IsVisibleSettings(ManagementType.SingleSignOnSettings.ToString()) ||
                    (CoreContext.Configuration.Standalone &&
                     !CoreContext.TenantManager.GetTenantQuota(TenantProvider.CurrentTenantID).Sso))
                {
                    ssoUrl   = string.Empty;
                    ssoLabel = string.Empty;
                }
                else
                {
                    var settings = SsoSettingsV2.Load();

                    if (settings.EnableSso)
                    {
                        var uri = HttpContext.Current.Request.GetUrlRewriter();

                        var configUrl = GetAppSettings("web.sso.saml.login.url", "");

                        ssoUrl = string.Format("{0}://{1}{2}{3}", uri.Scheme, uri.Host,
                                               (uri.Port == 80 || uri.Port == 443) ? "" : ":" + uri.Port, configUrl);

                        ssoLabel = settings.SpLoginLabel;
                    }
                }

                var capa = new CapabilitiesData
                {
                    LdapEnabled = ldapEnabled,
                    SsoUrl      = ssoUrl,
                    SsoLabel    = ssoLabel
                };

                return(capa);
            }
            catch (Exception ex)
            {
                LogManager.GetLogger(typeof(CapabilitiesEntryPoint)).Error(ex.Message);
            }

            return(CapabilitiesData.GetSample());
        }
Example #2
0
        [Read("", false, false)] //NOTE: this method doesn't requires auth!!!  //NOTE: this method doesn't check payment!!!
        public CapabilitiesData GetPortalCapabilities()
        {
            var result = new CapabilitiesData
            {
                LdapEnabled = false,
                Providers   = null,
                SsoLabel    = string.Empty,
                SsoUrl      = string.Empty
            };

            try
            {
                if (SetupInfo.IsVisibleSettings(ManagementType.LdapSettings.ToString()) &&
                    (!CoreContext.Configuration.Standalone ||
                     CoreContext.TenantManager.GetTenantQuota(TenantProvider.CurrentTenantID).Ldap))
                {
                    var settings = LdapSettings.Load();

                    result.LdapEnabled = settings.EnableLdapAuthentication;
                }
            }
            catch (Exception ex)
            {
                LogManager.GetLogger("ASC").Error(ex.Message);
            }

            try
            {
                result.Providers = AccountLinkControl.AuthProviders
                                   .Where(loginProvider =>
                {
                    var provider = ProviderManager.GetLoginProvider(loginProvider);
                    return(provider != null && provider.IsEnabled);
                })
                                   .ToList();
            }
            catch (Exception ex)
            {
                LogManager.GetLogger("ASC").Error(ex.Message);
            }

            try
            {
                if (SetupInfo.IsVisibleSettings(ManagementType.SingleSignOnSettings.ToString()) &&
                    (!CoreContext.Configuration.Standalone ||
                     CoreContext.TenantManager.GetTenantQuota(TenantProvider.CurrentTenantID).Sso))
                {
                    var settings = SsoSettingsV2.Load();

                    if (settings.EnableSso)
                    {
                        var uri = HttpContext.Current.Request.GetUrlRewriter();

                        var configUrl = GetAppSettings("web.sso.saml.login.url", "");

                        result.SsoUrl = string.Format("{0}://{1}{2}{3}", uri.Scheme, uri.Host,
                                                      (uri.Port == 80 || uri.Port == 443) ? "" : ":" + uri.Port, configUrl);

                        result.SsoLabel = settings.SpLoginLabel;
                    }
                }
            }
            catch (Exception ex)
            {
                LogManager.GetLogger("ASC").Error(ex.Message);
            }

            return(result);
        }