private string GetScript(GigyaSettingsViewModel model) { var builder = new StringBuilder(); builder.AppendFormat(@"<script> var gigyaConfig = {{ errorMessage: '{0}', id: '{1}', loggedInRedirectUrl: '{2}', logoutRedirectUrl: '{3}', debugMode: {4}, authenticated: {5}, getInfoRequired: {6} }}; </script>", HttpUtility.JavaScriptStringEncode(model.ErrorMessage), model.Id, HttpUtility.JavaScriptStringEncode(model.LoggedInRedirectUrl), HttpUtility.JavaScriptStringEncode(model.LogoutUrl), model.DebugMode.ToString().ToLowerInvariant(), model.IsLoggedIn.ToString().ToLowerInvariant(), model.IsGetInfoRequired.ToString().ToLowerInvariant() ); builder.AppendFormat("<script src=\"https://cdns.{0}/js/gigya.js?apiKey={1}\">", model.DataCenter, model.ApiKey); builder.Append(model.SettingsJson); builder.Append("</script>"); builder.AppendFormat("<script src=\"{0}\"></script>", model.GigyaScriptPath); if (model.DebugMode) { builder.Append("<script>window.gigyaDebugMode = true;</script>"); } return(builder.ToString()); }
/// <summary> /// Creates a view model for use in a view. /// </summary> /// <param name="settings">The settings for the current site.</param> /// <param name="urlHelper">UrlHelper for the current request.</param> public virtual GigyaSettingsViewModel ViewModel(IGigyaModuleSettings settings, UrlHelper urlHelper, CurrentIdentity currentIdentity) { var model = new GigyaSettingsViewModel { ApiKey = settings.ApiKey, DebugMode = settings.DebugMode, GigyaScriptPath = UrlUtils.AddQueryStringParam(_pathUtilities.ToAbsolute(ClientScriptPath(settings, urlHelper)), "v=" + CmsVersion + ModuleVersion), LoggedInRedirectUrl = settings.RedirectUrl, LogoutUrl = settings.LogoutUrl, IsLoggedIn = currentIdentity.IsAuthenticated, Id = settings.Id, DataCenter = settings.DataCenter, IsGetInfoRequired = settings.SessionProvider == Enums.GigyaSessionProvider.CMS }; model.Settings = !string.IsNullOrEmpty(settings.GlobalParameters) ? JsonConvert.DeserializeObject <ExpandoObject>(settings.GlobalParameters) : new ExpandoObject(); var settingsProperties = (IDictionary <string, object>)model.Settings; if (!settingsProperties.ContainsKey("lang")) { model.Settings.lang = Language(settings); } if (settings.SessionProvider == Enums.GigyaSessionProvider.Gigya && settings.GigyaSessionMode == Enums.GigyaSessionMode.Sliding) { // client needs -1 to specify a sliding session model.Settings.sessionExpiration = -1; } else if (settings.SessionProvider == Enums.GigyaSessionProvider.Gigya && settings.GigyaSessionMode == Enums.GigyaSessionMode.Forever) { // client needs -1 to specify a session that stays valid until the browser closes model.Settings.sessionExpiration = -2; } else if (settings.SessionProvider == Enums.GigyaSessionProvider.Gigya && settings.GigyaSessionMode == Enums.GigyaSessionMode.Session) { // client needs 0 to specify a session cookie model.Settings.sessionExpiration = 0; } else if (!settingsProperties.ContainsKey("sessionExpiration")) { model.Settings.sessionExpiration = settings.SessionTimeout; } model.SettingsJson = JsonConvert.SerializeObject(model.Settings); return(model); }