Browse Source

Hooked up the Change Password button so it uses the old JavaScript code in production, and uses the new AngularJS code in development. The AngularJS code will be used in production once it's completed.

jalbr74 7 years ago
parent
commit
f0bae60b13

+ 28 - 9
client/src/helpdesk/helpdesk-detail.component.ts

@@ -42,6 +42,9 @@ const STATUS_WAIT = 'wait';
 const STATUS_CONFIRM = 'confirm';
 const STATUS_CONFIRM = 'confirm';
 const STATUS_SUCCESS = 'success';
 const STATUS_SUCCESS = 'success';
 
 
+declare const PWM_HELPDESK: any;
+declare const PWM_VAR: any;
+
 @Component({
 @Component({
     stylesheetUrl: require('helpdesk/helpdesk-detail.component.scss'),
     stylesheetUrl: require('helpdesk/helpdesk-detail.component.scss'),
     templateUrl: require('helpdesk/helpdesk-detail.component.html')
     templateUrl: require('helpdesk/helpdesk-detail.component.html')
@@ -92,17 +95,33 @@ export default class HelpDeskDetailComponent {
     changePassword(): void {
     changePassword(): void {
         this.configService.getPasswordUiMode()
         this.configService.getPasswordUiMode()
             .then((passwordUiMode) => {
             .then((passwordUiMode) => {
-                if (passwordUiMode === PASSWORD_UI_MODES.AUTOGEN) {
-                    this.changePasswordAutogen();
-                }
-                else if (passwordUiMode === PASSWORD_UI_MODES.RANDOM) {
-                    this.changePasswordRandom();
-                }
-                else if (passwordUiMode === PASSWORD_UI_MODES.BOTH || passwordUiMode === PASSWORD_UI_MODES.TYPE) {
-                    this.changePasswordType();
+                if (passwordUiMode) {
+                    if (document.title === 'PWM Development') {
+                        const pwUiMode: string = passwordUiMode.toUpperCase();
+                        if (pwUiMode === PASSWORD_UI_MODES.TYPE) {
+                            this.changePasswordType();
+                        }
+                        else if (pwUiMode === PASSWORD_UI_MODES.AUTOGEN) {
+                            this.changePasswordAutogen();
+                        }
+                        else if (pwUiMode === PASSWORD_UI_MODES.BOTH) {
+                            // TODO: Need to take into account both autogen and typing in this scenario
+                            this.changePasswordType();
+                        }
+                        else if (pwUiMode === PASSWORD_UI_MODES.RANDOM) {
+                            this.changePasswordRandom();
+                        }
+                    }
+                    else {
+                        // Until the new AngularJS version of "Change Password" is finished, we'll just call into the
+                        // old PWM JavaScript functions:
+                        PWM_VAR['helpdesk_obfuscatedDN'] = this.getUserKey();
+                        PWM_VAR['helpdesk_setting_PwUiMode'] = passwordUiMode;
+                        PWM_HELPDESK.initiateChangePasswordDialog();
+                    }
                 }
                 }
                 else {
                 else {
-                    throw new Error('Password type unsupported!');  // TODO: best way to do this?
+                    throw new Error('Unable to retrieve a valid password UI mode.');
                 }
                 }
             });
             });
     }
     }

+ 1 - 0
server/src/main/webapp/WEB-INF/jsp/helpdesk.jsp

@@ -49,6 +49,7 @@
 <pwm:script-ref url="/public/resources/webjars/angular-translate/dist/angular-translate.min.js" />
 <pwm:script-ref url="/public/resources/webjars/angular-translate/dist/angular-translate.min.js" />
 
 
 <jsp:include page="/WEB-INF/jsp/fragment/footer.jsp"/>
 <jsp:include page="/WEB-INF/jsp/fragment/footer.jsp"/>
+<pwm:script-ref url="/public/resources/js/helpdesk.js"/>
 <link rel="stylesheet" type="text/css" href="<pwm:url url='/public/resources/webjars/pwm-client/fonts.css' addContext="true"/>"/>
 <link rel="stylesheet" type="text/css" href="<pwm:url url='/public/resources/webjars/pwm-client/fonts.css' addContext="true"/>"/>
 <pwm:script-ref url="/public/resources/webjars/pwm-client/helpdesk.ng.js" />
 <pwm:script-ref url="/public/resources/webjars/pwm-client/helpdesk.ng.js" />
 <pwm:script-ref url="/public/resources/js/changepassword.js"/>
 <pwm:script-ref url="/public/resources/js/changepassword.js"/>

+ 27 - 18
server/src/main/webapp/public/resources/js/helpdesk.js

@@ -26,6 +26,10 @@
 var PWM_HELPDESK = PWM_HELPDESK || {};
 var PWM_HELPDESK = PWM_HELPDESK || {};
 var PWM_VAR = PWM_VAR || {};
 var PWM_VAR = PWM_VAR || {};
 
 
+function getPageUrl() {
+    return window.location.href.replace(window.location.hash, "");
+}
+
 PWM_HELPDESK.executeAction = function(actionName) {
 PWM_HELPDESK.executeAction = function(actionName) {
     var body = PWM_VAR['actions'][actionName]['description'];
     var body = PWM_VAR['actions'][actionName]['description'];
     body += "<br/><br/>" + PWM_MAIN.showString('Confirm');
     body += "<br/><br/>" + PWM_MAIN.showString('Confirm');
@@ -36,7 +40,7 @@ PWM_HELPDESK.executeAction = function(actionName) {
             var inputValues = {};
             var inputValues = {};
             inputValues['userKey'] = PWM_VAR['helpdesk_obfuscatedDN'];
             inputValues['userKey'] = PWM_VAR['helpdesk_obfuscatedDN'];
             PWM_MAIN.showWaitDialog({loadFunction:function() {
             PWM_MAIN.showWaitDialog({loadFunction:function() {
-                var url = PWM_MAIN.addParamToUrl(window.location.href,"processAction", "executeAction");
+                var url = PWM_MAIN.addParamToUrl(getPageUrl(),"processAction", "executeAction");
                 url = PWM_MAIN.addParamToUrl(url, "name", actionName);
                 url = PWM_MAIN.addParamToUrl(url, "name", actionName);
                 var loadFunction = function(data) {
                 var loadFunction = function(data) {
                     PWM_MAIN.closeWaitDialog();
                     PWM_MAIN.closeWaitDialog();
@@ -252,7 +256,7 @@ PWM_HELPDESK.loadSearchDetails = function(userKey) {
             if (PWM_MAIN.Preferences.readSessionStorage(PREF_KEY_VERIFICATION_STATE)) {
             if (PWM_MAIN.Preferences.readSessionStorage(PREF_KEY_VERIFICATION_STATE)) {
                 contents[PARAM_VERIFICATION_STATE] = PWM_MAIN.Preferences.readSessionStorage(PREF_KEY_VERIFICATION_STATE);
                 contents[PARAM_VERIFICATION_STATE] = PWM_MAIN.Preferences.readSessionStorage(PREF_KEY_VERIFICATION_STATE);
             }
             }
-            PWM_MAIN.submitPostAction(window.location.href,'showDetail',contents);
+            PWM_MAIN.submitPostAction(getPageUrl(),'showDetail',contents);
         }});
         }});
     };
     };
 
 
@@ -261,7 +265,10 @@ PWM_HELPDESK.loadSearchDetails = function(userKey) {
             PWM_MAIN.showErrorDialog(data);
             PWM_MAIN.showErrorDialog(data);
         } else {
         } else {
             if (data['data']['passed']) {
             if (data['data']['passed']) {
-                gotoDetailFunction(userKey);
+                PWM_MAIN.closeWaitDialog();
+
+                // Don't need to do anything else, since we have an angular page going on.
+                // gotoDetailFunction(userKey);
             } else {
             } else {
                 var verificationMethods = PWM_VAR['verificationMethods']['required'];
                 var verificationMethods = PWM_VAR['verificationMethods']['required'];
                 PWM_HELPDESK.sendVerificationToken(userKey,verificationMethods);
                 PWM_HELPDESK.sendVerificationToken(userKey,verificationMethods);
@@ -270,7 +277,7 @@ PWM_HELPDESK.loadSearchDetails = function(userKey) {
     };
     };
 
 
     var checkVerificationFunction = function() {
     var checkVerificationFunction = function() {
-        var url = PWM_MAIN.addParamToUrl(window.location.href,"processAction", "checkVerification");
+        var url = PWM_MAIN.addParamToUrl(getPageUrl(),"processAction", "checkVerification");
         var content = {};
         var content = {};
         content['userKey'] = userKey;
         content['userKey'] = userKey;
         content[PARAM_VERIFICATION_STATE] = PWM_MAIN.Preferences.readSessionStorage(PREF_KEY_VERIFICATION_STATE);
         content[PARAM_VERIFICATION_STATE] = PWM_MAIN.Preferences.readSessionStorage(PREF_KEY_VERIFICATION_STATE);
@@ -314,7 +321,7 @@ PWM_HELPDESK.showRecentVerifications = function() {
     };
     };
 
 
     var loadVerificationsFunction = function() {
     var loadVerificationsFunction = function() {
-        var url = PWM_MAIN.addParamToUrl(window.location.href,"processAction", "showVerifications");
+        var url = PWM_MAIN.addParamToUrl(getPageUrl(),"processAction", "showVerifications");
         var content = {};
         var content = {};
         content[PARAM_VERIFICATION_STATE] = PWM_MAIN.Preferences.readSessionStorage(PREF_KEY_VERIFICATION_STATE);
         content[PARAM_VERIFICATION_STATE] = PWM_MAIN.Preferences.readSessionStorage(PREF_KEY_VERIFICATION_STATE);
         PWM_MAIN.ajaxRequest(url, handleVerificationResult, {content:content});
         PWM_MAIN.ajaxRequest(url, handleVerificationResult, {content:content});
@@ -326,7 +333,7 @@ PWM_HELPDESK.showRecentVerifications = function() {
 
 
 PWM_HELPDESK.processHelpdeskSearch = function() {
 PWM_HELPDESK.processHelpdeskSearch = function() {
     var validationProps = {};
     var validationProps = {};
-    validationProps['serviceURL'] = PWM_MAIN.addParamToUrl(window.location.href,"processAction", "search");
+    validationProps['serviceURL'] = PWM_MAIN.addParamToUrl(getPageUrl(),"processAction", "search");
     validationProps['showMessage'] = false;
     validationProps['showMessage'] = false;
     validationProps['ajaxTimeout'] = 120 * 1000;
     validationProps['ajaxTimeout'] = 120 * 1000;
     validationProps['usernameField'] = PWM_MAIN.getObject('username').value;
     validationProps['usernameField'] = PWM_MAIN.getObject('username').value;
@@ -450,7 +457,7 @@ PWM_HELPDESK.validateCode = function(options) {
             content['code'] = PWM_MAIN.getObject('code').value;
             content['code'] = PWM_MAIN.getObject('code').value;
         }
         }
         content[PARAM_VERIFICATION_STATE] = PWM_MAIN.Preferences.readSessionStorage(PREF_KEY_VERIFICATION_STATE);
         content[PARAM_VERIFICATION_STATE] = PWM_MAIN.Preferences.readSessionStorage(PREF_KEY_VERIFICATION_STATE);
-        var url = PWM_MAIN.addParamToUrl(window.location.href,"processAction", processAction);
+        var url = PWM_MAIN.addParamToUrl(getPageUrl(),"processAction", processAction);
         var loadFunction = function(data) {
         var loadFunction = function(data) {
             PWM_MAIN.getObject('icon-working').style.display = 'none';
             PWM_MAIN.getObject('icon-working').style.display = 'none';
 
 
@@ -521,7 +528,7 @@ PWM_HELPDESK.sendVerificationToken = function(userKey, methods) {
             sendContent['method'] = choice;
             sendContent['method'] = choice;
         }
         }
         PWM_MAIN.showWaitDialog({loadFunction:function(){
         PWM_MAIN.showWaitDialog({loadFunction:function(){
-            var url = PWM_MAIN.addParamToUrl(window.location.href,"processAction", "sendVerificationToken");
+            var url = PWM_MAIN.addParamToUrl(getPageUrl(),"processAction", "sendVerificationToken");
             var loadFunction = function(data) {
             var loadFunction = function(data) {
                 if (!data['error']) {
                 if (!data['error']) {
                     var text = '<table><tr><td>' + PWM_MAIN.showString('Display_TokenDestination') + '</td><td>' + data['data']['destination'] + '</td></tr></table>';
                     var text = '<table><tr><td>' + PWM_MAIN.showString('Display_TokenDestination') + '</td><td>' + data['data']['destination'] + '</td></tr></table>';
@@ -624,15 +631,17 @@ PWM_HELPDESK.initHelpdeskSearchPage = function() {
             }
             }
         });
         });
 
 
-        try {
-            var helpdeskFieldUsername = PWM_MAIN.Preferences.readSessionStorage("helpdesk_field_username","");
-            PWM_MAIN.getObject('username').value = helpdeskFieldUsername;
-        } catch (e) {
-            console.log('error reading username field from sessionStorage: ' + e);
-        }
+        if (PWM_MAIN.getObject('username')) {
+            try {
+                var helpdeskFieldUsername = PWM_MAIN.Preferences.readSessionStorage("helpdesk_field_username","");
+                PWM_MAIN.getObject('username').value = helpdeskFieldUsername;
+            } catch (e) {
+                console.log('error reading username field from sessionStorage: ' + e);
+            }
 
 
-        if (PWM_MAIN.getObject('username').value && PWM_MAIN.getObject('username').value.length > 0) {
-            PWM_HELPDESK.processHelpdeskSearch();
+            if (PWM_MAIN.getObject('username').value && PWM_MAIN.getObject('username').value.length > 0) {
+                PWM_HELPDESK.processHelpdeskSearch();
+            }
         }
         }
     });
     });
 };
 };
@@ -711,7 +720,7 @@ PWM_HELPDESK.unlockIntruder = function() {
         okAction:function() {
         okAction:function() {
             PWM_MAIN.showWaitDialog({
             PWM_MAIN.showWaitDialog({
                 loadFunction:function(){
                 loadFunction:function(){
-                    var url = PWM_MAIN.addParamToUrl(window.location.href,"processAction", "unlockIntruder");
+                    var url = PWM_MAIN.addParamToUrl(getPageUrl(),"processAction", "unlockIntruder");
                     url = PWM_MAIN.addParamToUrl(url, "userKey", PWM_VAR['helpdesk_obfuscatedDN']);
                     url = PWM_MAIN.addParamToUrl(url, "userKey", PWM_VAR['helpdesk_obfuscatedDN']);
                     var load = function(data) {
                     var load = function(data) {
                         if (data['error'] === true) {
                         if (data['error'] === true) {
@@ -737,7 +746,7 @@ PWM_HELPDESK.doOtpClear = function() {
     var inputValues = {};
     var inputValues = {};
     inputValues['userKey'] = PWM_VAR['helpdesk_obfuscatedDN'];
     inputValues['userKey'] = PWM_VAR['helpdesk_obfuscatedDN'];
     PWM_MAIN.showWaitDialog({loadFunction:function() {
     PWM_MAIN.showWaitDialog({loadFunction:function() {
-        var url = PWM_MAIN.addParamToUrl(window.location.href,"processAction", "clearOtpSecret");
+        var url = PWM_MAIN.addParamToUrl(getPageUrl(),"processAction", "clearOtpSecret");
         var loadFunction = function(results) {
         var loadFunction = function(results) {
             if (results['error'] !== true) {
             if (results['error'] !== true) {
                 PWM_MAIN.showDialog({
                 PWM_MAIN.showDialog({