{"version":3,"sources":["node_modules/browser-pack/_prelude.js","cloudflow/CloudflowUtil/js/TemporyBrowserObjectCache.js","cloudflow/Version/js/Version.js","nebulaportal/js/login/login.js","nebulaportal/js/login/loginUtil.js"],"names":["r","e","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","isReload","window","performance","undefined","getEntriesByType","results","Array","isArray","type","navigation","isReloaded","TemporyBrowserObjectCache","save","pIdentifier","pObject","sessionStorage","setItem","JSON","stringify","object","creation","Date","get","stringified","getItem","memoryObject","parse","now","setHours","getHours","removeItem","console","error","remove","isPageReload","versionObject","versionDef","Version","this","_setVersionObject","cacheObject","$","when","loadVersionFromBackend","then","pVersionObject","reset","prototype","constructor","isPlainObject","getVersionObject","getBuild","build","toString","version","major","minor","i18n","_","rev","getHashString","isEmptyObject","toJSON","extend","Deferred","pDefer","api_async","resolve","portal","pVersion","pError","loginFunctions","loginFailedHandler","pReason","text","prop","closest","addClass","loginHandler","username","val","password","removeClass","scope_option","doMultiScopeLogin","pUserId","setFrameSession","document","location","assign","sOrigURL","doLogin","renderLogin","pLanguage","title","sTitle","attr","href","sOrigUser","api_defer","auth","generate_oauth2_url","pData","result","show","css","click","focus","keypress","pEvent","keyCode","loginText","getVersionText","indexOf","check_scopes","users","get_all_scopes_for_user","list_scopes","parent","scopes","insertAfter","forEach","scope","index","append","name","clear","on","prefsPromise","preferences","get_for_current_user","prefs","language","translations","setDictionary","find","each","element","_t","fail","getTime","p_translations","removeOtherCookies","pCookieToLive","pairs","cookie","split","pair","cookieKey","trim","pUsername","pPassword","pScope","pSuccess","pFailure","doLoginWithOptions","login_options","scope_name","login_with_options","user_id","failedLogin","secureOptions","expires","path","protocol","secure","expiration_date","user_hash","csrf_token","scope_id","error_code","pVersionData","versionText","userId","frame","os","get_current_user","currentUser","create_session","sessionKey","session","set_cloudflow_session","force","expiry_time"],"mappings":"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","file":"portal-login.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i 0 && typeof results[0].type === \"string\") {\n return results[0].type === \"reload\";\n }\n }\n // if not found check deprecated function\n if (performance.navigation !== undefined && typeof performance.navigation.type === \"number\") {\n return performance.navigation.type === 1;\n }\n }\n return false;\n}\nvar isReloaded = isReload();\n\nvar TemporyBrowserObjectCache = {\n\n save: function(pIdentifier, pObject){\n try {\n // session can not exists or storage can be full\n // so ignore errors\n sessionStorage.setItem(pIdentifier, JSON.stringify({\"object\": pObject, \"creation\": +(new Date())}));\n } catch(e) {}\n },\n\n get: function(pIdentifier) {\n try {\n // sessionStorage can not exists or \n // returnValue can not be JSON parsed correctly\n // in all cases ignore and go to retrieve by api call\n var stringified = sessionStorage.getItem(pIdentifier);\n if (typeof stringified === \"string\" && stringified.length > 0) {\n var memoryObject = JSON.parse(stringified);\n if (memoryObject.object !== undefined && memoryObject.creation !== undefined) {\n var now = new Date();\n if (now.setHours(now.getHours() - 12) < memoryObject.creation) { // if created more recent then history\n return memoryObject.object;\n }\n }\n // continue in case of wrong\n sessionStorage.removeItem(pIdentifier);\n }\n } catch(e) {console.error(e);}\n return null;\n },\n\n remove: function(pIdentifier) {\n if (window.sessionStorage !== undefined) {\n window.sessionStorage.removeItem(pIdentifier);\n }\n },\n\n isPageReload: function(){\n return isReloaded == true;\n }\n};\n\nmodule.exports = TemporyBrowserObjectCache;","var TemporyBrowserObjectCache = require(\"../../CloudflowUtil/js/TemporyBrowserObjectCache.js\");\nvar versionObject;\nvar versionDef;\n\nfunction Version(pObject) {\n this._setVersionObject(pObject);\n};\n\nVersion.get = function(){\n if (versionObject === undefined) {\n if (versionDef === undefined) {\n if (TemporyBrowserObjectCache.isPageReload() !== true) {\n var cacheObject = TemporyBrowserObjectCache.get(\"nixps_cloudflow_version\");\n if (cacheObject !== null) {\n versionObject = cacheObject;\n return $.when(new Version(versionObject));\n }\n }\n versionDef = loadVersionFromBackend();\n }\n return $.when(versionDef).then(function(pVersionObject){\n versionObject = pVersionObject;\n TemporyBrowserObjectCache.save('nixps_cloudflow_version', versionObject);\n return new Version(versionObject);\n });\n } else {\n return $.when(new Version(versionObject));\n }\n}\n\nVersion.reset = function(){\n versionObject = undefined;\n versionDef = undefined;\n TemporyBrowserObjectCache.remove(\"nixps_cloudflow_version\");\n};\n\nVersion.prototype = {\n \n constructor: Version,\n \n _setVersionObject: function(pVersionObject){\n if ($.isPlainObject(pVersionObject)) {\n this.versionObject = pVersionObject;\n } else {\n throw new Error(\"expect an object as parameter\");\n }\n },\n \n getVersionObject: function(){\n return this.versionObject;\n },\n \n getBuild: function(){\n if (this.versionObject.build !== undefined) {\n return this.versionObject.build;\n } \n return 0;\n },\n \n toString: function(){\n var version = \"\";\n // control if major and minor number are present, otherwise do nothing.\n if (typeof this.versionObject.major === \"number\" && this.versionObject.major >= 0 && typeof this.versionObject.minor === \"number\" && this.versionObject.minor >= 0) {\n var version = $.i18n._('nixps-cloudflow-login.version', [this.versionObject.major + '.' + this.versionObject.minor, this.versionObject.build]);\n if (typeof this.versionObject.rev === \"number\" && this.versionObject.rev > 0) {\n version += (\" \" + $.i18n._('nixps-cloudflow-login.versionupdate', [this.versionObject.rev]));\n }\n }\n return version;\n },\n \n getHashString: function(){\n if ($.isEmptyObject(this.versionObject)) {\n return \"00version0\";\n }\n return this.versionObject.major + \"\" + this.versionObject.minor + 'version' + this.versionObject.build;\n },\n \n toJSON: function(){\n return $.extend({}, this.versionObject);\n }\n};\n\nfunction loadVersionFromBackend() {\n return $.Deferred(function(pDefer){\n if (window.api_async === undefined) {\n pDefer.resolve({});\n return;\n }\n api_async.portal.version(function(pVersion){\n pDefer.resolve(pVersion);\n }, function(pError){\n console.error(pError);\n pDefer.resolve({});\n });\n });\n}\n\nmodule.exports = Version;","'use strict';\nvar loginFunctions = require('./loginUtil.js');\nvar Version = require('../../../cloudflow/Version/js/Version.js');\n/**\n * Handler that is executed when the login has failed\n */\nfunction loginFailedHandler (pReason) {\n $('#loginStatus').text(pReason);\n $('#loginButton').prop('disabled', false);\n $('#loginStatus').closest('.cf-form-group').addClass('cf-form-group-has-error');\n}\n\n/**\n * Handler that does the login\n */\nfunction loginHandler () {\n $('#loginButton').prop('disabled', true);\n var username = $('#username').val();\n var password = $('#password').val();\n $('#loginButton').prop('disabled', true);\n $('#loginStatus').closest('.cf-form-group').removeClass('cf-form-group-has-error');\n if ($('#scope_options').length > 0) {\n var scope_option = $('#scope_options').val();\n loginFunctions.doMultiScopeLogin(username, password, scope_option, function (pUserId) {\n loginFunctions.setFrameSession(pUserId).then(function () {\n document.location.assign(sOrigURL);\n });\n }, loginFailedHandler);\n } else {\n loginFunctions.doLogin(username, password, function (pUserId) {\n loginFunctions.setFrameSession(pUserId).then(function () {\n document.location.assign(sOrigURL);\n });\n }, loginFailedHandler);\n }\n}\n\n/**\n * Draws the UI and binds the events\n * @param {string} pLanguage \n */\nfunction renderLogin (pLanguage, pVersionObject) {\n document.title = $.i18n._(sTitle);\n $('#username').attr('placeholder', $.i18n._('nixps-cloudflow-login.username'));\n $('#password').attr('placeholder', $.i18n._('nixps-cloudflow-login.password'));\n\n // Set defaults in case the variables are not filled in\n if (sOrigURL === \"\") {\n sOrigURL = window.location.href;\n }\n\n if (sOrigUser === \"\") {\n sOrigUser = \"\";\n }\n\n if (sOrigUser !== \"\") {\n $('#username').val(sOrigUser);\n }\n\n // Try to generate the oauth2 link\n api_defer.auth.generate_oauth2_url('google').then(function (pData) {\n if ((pData.result !== undefined) && (pData.result !== null)) {\n $('a#googleButton').attr('href', pData.result);\n $('div#google').show();\n }\n }, function () {\n /* ignore error */\n });\n\n // Bind the login button\n $('#loginButton').attr('value', $.i18n._('nixps-cloudflow-login.ok'))\n .prop(\"disabled\", false)\n .css(\"cursor\", \"pointer\")\n .click(loginHandler);\n\n // Focus the right field\n if ($('#username').val() === '') {\n $('#username').focus();\n } else {\n $('#password').focus();\n }\n\n // Bind the return keypress\n $(document).keypress(function (pEvent) {\n if (pEvent.keyCode === 13) {\n loginHandler();\n }\n });\n\n // Show the version text\n if (pVersionObject === undefined) {\n Version.get().then(function(version){\n var loginText = loginFunctions.getVersionText(version.getVersionObject());\n $(\"#versionText\").text(loginText);\n });\n } else {\n var loginText = loginFunctions.getVersionText(pVersionObject);\n\t\t$(\"#versionText\").text(loginText);\n }\n\n if (window.location.toString().indexOf('error=1') >= 0) {\n loginFailedHandler($.i18n._('nixps-cloudflow-login.error-user_not_registered'));\n }\n}\n//check if user has multiple scopes and add dropdown if so\nfunction check_scopes() {\n api_async.users.get_all_scopes_for_user($('#username').val(), function(list_scopes){\n $('#scope_options').parent('.cf-form-group').remove();\n if (list_scopes !== undefined && list_scopes.scopes && list_scopes.scopes.length > 1) {\n if ($('#scope_options').length === 0) {\n $('
').insertAfter($('#password').parent('.cf-form-group'));\n }\n list_scopes.scopes.forEach(function (scope, index) {\n if (index === 0) {\n $('#scope_options').append('');\n }\n else {\n $('#scope_options').append('');\n }\n \n });\n }\n });\n\n}\n\n/**\n * Entry point of the login page\n */\n$(function () {\n /* reset sessions */\n if (window.sessionStorage !== undefined) {\n sessionStorage.clear();\n }\n \n /* check if user has multiple scopes when leaving username field */\n $('#username').on(\"focusout\", function () {\n var username = $(\"#username\").val();\n check_scopes(username);\n });\n\n var prefsPromise = api_defer.preferences.get_for_current_user('', 'language');\n $.when(prefsPromise, Version.get()).then(function (prefs, version) {\n var language = prefs.preferences;\n var build = version.getBuild();\n return $.when($.get('/cloudflow_' + language + '.json?' + build), language, version.getVersionObject());\n }).then(function (translations, language, pVersionObject) {\n $.i18n.setDictionary(translations[0]);\n $('body').find(\"span.translate\").each(function(index, element) {\n var e = $(element);\n e._t(e.attr('key'));\n });\n renderLogin(language, pVersionObject);\n }).fail(function () {\n $.get('/cloudflow_en.json?' + (new Date().getTime())).then(function(p_translations) {\n $.i18n.setDictionary(p_translations);\n $('body').find(\"span.translate\").each(function(index, element) {\n var e = $(element);\n e._t(e.attr('key'));\n });\n renderLogin('en');\n }).fail(function (pError) {\n console.error(pError);\n\t\t // even translations faild, so we can not translate error message :-(\n $(\"#loginStatus\").text(\"Unable to setup log in. Retry later.\").closest('.cf-form-group').addClass('cf-form-group-has-error');\n });\n });\n});\n","'use strict';\n\nfunction removeOtherCookies (pCookieToLive) {\n if (Array.isArray(pCookieToLive) === false) {\n pCookieToLive = [];\n }\n\n var pairs = document.cookie.split(\";\");\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i].split(\"=\");\n var cookieKey = pair[0].trim();\n\n if (typeof cookieKey === \"string\" && (cookieKey.length > 0) && (pCookieToLive.indexOf(cookieKey) === -1)) {\n $.cookie(cookieKey, null); // remove it\n }\n }\n}\n\nfunction doMultiScopeLogin(pUsername, pPassword, pScope, pSuccess, pFailure) {\n doLoginWithOptions(pUsername, pPassword, pScope, pSuccess, pFailure);\n}\n\nfunction doLoginWithOptions(pUsername, pPassword, pScope, pSuccess, pFailure) {\n removeOtherCookies(['user_id', 'user_hash', 'expiration_date', 'csrf-token', 'cf_sidebar_displaymode']);\n var login_options = { \"password\": pPassword};\n if (pScope !== \"\") {\n login_options.scope_name = pScope;\n }\n api_async.auth.login_with_options(pUsername, login_options, function (pData) {\n if (pData.user_id === undefined) {\n failedLogin($.i18n._('nixps-cloudflow-login.error-login_failed'));\n } else {\n // Store our login in a cookie\n var secureOptions = { \n expires: 2, // default 2 days\n path: '/' \n };\n if (document.location.protocol === 'https:') {\n secureOptions.secure = true;\n }\n if (pData.expiration_date !== undefined) {\n secureOptions.expires = (pData.expiration_date - new Date().getTime() / 1000) / 86400 + 1;\n }\n $.cookie('user_id', pData.user_id, secureOptions);\n $.cookie('user_hash', pData.user_hash, secureOptions);\n $.cookie('expiration_date', pData.expiration_date, secureOptions);\n $.cookie('csrf-token', pData.csrf_token, secureOptions);\n if (pData.scope_id !== undefined) {\n $.cookie('scope', pData.scope_id, { expires: secureOptions.expires, path: '/' });\n } \n pSuccess(pData.user_id);\n }\n }, function (pError) {\n if (pError.error_code !== undefined) {\n pFailure($.i18n._('nixps-cloudflow-login.error-' + pError.error_code));\n } else if (pError.error != undefined) {\n pFailure(pError.error);\n }\n });\n}\n\nfunction doLogin (pUsername, pPassword, pSuccess, pFailure) {\n doLoginWithOptions(pUsername, pPassword, \"\" ,pSuccess, pFailure);\n}\n\nfunction getVersionText (pVersionData) {\n var version = pVersionData.major + \".\" + pVersionData.minor;\n\n if (pVersionData.rev !== 0) {\n version += \".\" + pVersionData.rev;\n }\n\n var versionText = $.i18n._('nixps-cloudflow-login.version', [version, pVersionData.build]);\n return versionText;\n}\n\nfunction setFrameSession (userId) {\n return $.Deferred(function (pDefer) {\n api_defer.frame.os.get().then(function () {\n api_defer.auth.get_current_user().then(function (currentUser) {\n return api_defer.auth.create_session(currentUser.username);\n }).then(function (sessionKey) {\n var session = sessionKey.session;\n return api_defer.frame.os.set_cloudflow_session(session, {\"force\": true, \"expiry_time\": sessionKey.expiry_time});\n }).then(function () {\n pDefer.resolve();\n }).fail(function () {\n pDefer.resolve();\n });\n }).fail(function () {\n pDefer.resolve();\n });\n });\n}\n\nmodule.exports = {\n doLogin: doLogin,\n doMultiScopeLogin: doMultiScopeLogin,\n getVersionText: getVersionText,\n setFrameSession: setFrameSession\n}\n"]}