You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by sk...@apache.org on 2018/11/12 15:50:53 UTC

[syncope] branch 2_1_X updated: [SYNCOPE-1391] Fix for 'Must change password' and 'Confirm password reset' pages

This is an automated email from the ASF dual-hosted git repository.

skylark17 pushed a commit to branch 2_1_X
in repository https://gitbox.apache.org/repos/asf/syncope.git


The following commit(s) were added to refs/heads/2_1_X by this push:
     new fd45e23  [SYNCOPE-1391] Fix for 'Must change password' and 'Confirm password reset' pages
fd45e23 is described below

commit fd45e2338f4dda0d8fbec0f2f33e3c0ce532fc8a
Author: skylark17 <ma...@tirasa.net>
AuthorDate: Mon Nov 12 15:37:35 2018 +0100

    [SYNCOPE-1391] Fix for 'Must change password' and 'Confirm password reset' pages
---
 .../app/js/services/dynamicTemplateService.js      | 12 ++--
 .../resources/app/views/confirmpasswordreset.html  | 59 +--------------
 .../META-INF/resources/app/views/editUser.html     |  2 +-
 .../resources/app/views/mustchangepassword.html    | 59 +--------------
 .../resources/app/views/passwordreset.html         |  2 +-
 .../META-INF/resources/app/views/self.html         |  2 +-
 .../templates/confirmPasswordResetTemplate.html    | 83 ++++++++++++++++++++++
 .../templates/mustChangePasswordTemplate.html      | 82 +++++++++++++++++++++
 .../enduser/src/main/resources/customTemplate.json | 16 +++++
 .../enduser/src/test/resources/customTemplate.json | 20 +++++-
 .../src/main/resources/customTemplate.json         | 16 +++++
 .../src/test/resources/customTemplate.json         | 16 +++++
 .../workingwithapachesyncope/customization.adoc    | 28 +++++++-
 13 files changed, 270 insertions(+), 127 deletions(-)

diff --git a/client/enduser/src/main/resources/META-INF/resources/app/js/services/dynamicTemplateService.js b/client/enduser/src/main/resources/META-INF/resources/app/js/services/dynamicTemplateService.js
index b3348e0..39a06c5 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/js/services/dynamicTemplateService.js
+++ b/client/enduser/src/main/resources/META-INF/resources/app/js/services/dynamicTemplateService.js
@@ -45,17 +45,17 @@ angular.module('SyncopeEnduserApp')
             };
 
             dynTemplateService.getContent = function () {
-              return $http
-                      .get(dynTemplateUrl)
-                      .then(function (response) {
+              return $http.
+                      get(dynTemplateUrl).
+                      then(function (response) {
                         return response.data;
                       }, error);
             };
 
             dynTemplateService.getGeneralAssetsContent = function (types) {
-              return $http
-                      .get(dynTemplateUrl)
-                      .then(function (response) {
+              return $http.
+                      get(dynTemplateUrl).
+                      then(function (response) {
                         return loadAssets("generalAssets", response.data, types);
                       }, error);
             };
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/confirmpasswordreset.html b/client/enduser/src/main/resources/META-INF/resources/app/views/confirmpasswordreset.html
index 8d165f3..3fcc543 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/views/confirmpasswordreset.html
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/confirmpasswordreset.html
@@ -17,62 +17,5 @@ specific language governing permissions and limitations
 under the License.
 -->
 <div ng-cloak class="container">
-  <div ng-controller="UserController">
-
-    <div id="form-container" class="col-md-6 col-md-offset-3">
-
-      <div>
-        <div class="page-header">
-          <span>{{'CONFIRM_PASSWORD_RESET'| translate}}</span>
-        </div>
-        <div class="breadcrumb-header text-center">
-
-          <div class="row">            
-            <div id="status-buttons" class="btn-group btn-breadcrumb col-md-12 col-md-offset-3">
-              <a href="#/self" class="btn btn-secondary btn-default"><i class="fa fa-home"></i></a>
-              <!--add class breadcrumb-disabled-link to buttons to prevent click-->
-              <a ui-sref-active="active" class="btn btn-secondary btn-default">Password reset</a>
-            </div>
-          </div>
-        </div>
-        <form class="signup-form" name="confirmPasswordResetForm" ng-submit="confirmPasswordReset(user, $event)" 
-              novalidate>
-
-          <div id="form-views" ui-view>
-            <div id="attribute" class="form-group">
-              <label for="user.password">Password</label>
-              <input type="password" class="form-control" name="password" ng-model="user.password" placeholder="password">
-            </div>
-
-            <div id="attribute" class="form-group">
-              <label for="confirmPassword">{{'CONFIRM_PASSWORD'| translate}}</label>
-              <input name="password" type="password" class="form-control" equals="user.password" 
-                     ng-model="confirmPassword.value"
-                     placeholder="confirm password" validate="true">
-              <validation-message name="password"/>
-            </div>
-
-            <div id="attribute" class="form-group">
-              <div class="suggestions">
-                {{'PASSWORD_STRENGTH'| translate}}:
-                <span ng-if="passStrength < 50">{{'INSECURE'| translate}}</span>
-                <span ng-if="passStrength >= 50 && passStrength <= 82">{{'ALMOSTSECURE'| translate}}</span>
-                <span ng-if="passStrength > 82">{{'VERYGOOD'| translate}}</span>
-              </div>
-              <div ng-password-strength="user.password" strength="passStrength" inner-class="progress-bar" 
-                   inner-class-prefix="progress-bar-">
-              </div>
-            </div>
-            <div id="attribute" class="form-group row">
-              <button id="resetpassword" type="submit" 
-                      class="btn btn-secondary btn-default float-right">{{'SUBMIT'| translate}}</button>
-              <div class="float-left">
-                <a id="cancel" href="#/self" class="btn btn-danger">{{'CANCEL'| translate}}</a>
-              </div>
-            </div>
-          </div>
-        </form>
-      </div>
-    </div>
-  </div>
+  <dynamic-template-item type="confirm_password_reset"></dynamic-template-item>
 </div>
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/editUser.html b/client/enduser/src/main/resources/META-INF/resources/app/views/editUser.html
index 3d0d013..2cae136 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/views/editUser.html
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/editUser.html
@@ -17,5 +17,5 @@ specific language governing permissions and limitations
 under the License.
 -->
 <div ng-cloak class="container">
-  <dynamic-template-item type="edit_user"/>
+  <dynamic-template-item type="edit_user"></dynamic-template-item>
 </div>
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/mustchangepassword.html b/client/enduser/src/main/resources/META-INF/resources/app/views/mustchangepassword.html
index 1245214..7c4098d 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/views/mustchangepassword.html
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/mustchangepassword.html
@@ -17,62 +17,5 @@ specific language governing permissions and limitations
 under the License.
 -->
 <div ng-cloak class="container">
-  <div ng-controller="UserController">
-
-    <div id="form-container" class="col-md-6 col-md-offset-3">
-
-      <div>
-        <div class="page-header">
-          <span>{{'PASSWORD_CHANGE_REQUIRED'| translate}}</span>
-        </div>
-        <div class="breadcrumb-header text-center">
-
-          <div class="row">            
-            <div id="status-buttons" class="btn-group btn-breadcrumb col-md-12 col-md-offset-3">
-              <a class="btn btn-secondary btn-default breadcrumb-home" ng-click="logout()">
-                <i class="fa fa-power-off"style="color:red"></i>
-              </a>
-              <!--add class breadcrumb-disabled-link to buttons to prevent click-->
-              <a ui-sref-active="active" class="btn btn-secondary btn-default">{{'PASSWORD_CHANGE'| translate}}</a>
-            </div>
-          </div>
-        </div>
-        <form class="signup-form" name="changePasswordForm" ng-submit="changePassword(user, $event)" novalidate>
-
-          <div id="form-views" ui-view>
-            <div id="attribute" class="form-group">
-              <label for="user.password">{{'PASSWORD'| translate}}</label>
-              <input type="password" class="form-control" name="password" ng-model="user.password" placeholder="password">
-            </div>
-
-            <div id="attribute" class="form-group">
-              <label for="confirmPassword">{{'CONFIRM_PASSWORD'| translate}}</label>
-              <input name="password" type="password" class="form-control" equals="user.password" ng-model="confirmPassword.value"
-                     placeholder="confirm password" validate="true">
-              <validation-message name="password"/>
-            </div>
-
-            <div id="attribute" class="form-group">
-              <div class="suggestions">
-                {{'PASSWORD_STRENGTH'| translate}}: 
-                <span ng-if="passStrength < 50">{{'NOTSECURE'| translate}}</span>
-                <span ng-if="passStrength >= 50 && passStrength <= 82">{{'ALMOSTSECURE'| translate}}</span>
-                <span ng-if="passStrength > 82">{{'VERYGOOD'| translate}}</span>
-              </div>
-              <div ng-password-strength="user.password" strength="passStrength" inner-class="progress-bar" 
-                   inner-class-prefix="progress-bar-">
-              </div>
-            </div>
-            <div id="attribute" class="form-group row">
-              <button id="resetpassword" type="submit" 
-                      class="btn btn-secondary btn-default float-right">{{'SUBMIT'| translate}}</button>
-              <div class="float-left">
-                <a id="cancel" href="#/self" class="btn btn-danger">{{'CANCEL'| translate}}</a>
-              </div>
-            </div>
-          </div>
-        </form>
-      </div>
-    </div>
-  </div>
+  <dynamic-template-item type="must_change_password"></dynamic-template-item>
 </div>
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/passwordreset.html b/client/enduser/src/main/resources/META-INF/resources/app/views/passwordreset.html
index baeee40..3436283 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/views/passwordreset.html
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/passwordreset.html
@@ -17,5 +17,5 @@ specific language governing permissions and limitations
 under the License.
 -->
 <div ng-cloak class="container">
-  <dynamic-template-item type="password_reset"/>
+  <dynamic-template-item type="password_reset"></dynamic-template-item>
 </div>
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/self.html b/client/enduser/src/main/resources/META-INF/resources/app/views/self.html
index b7bf74d..b4147a4 100644
--- a/client/enduser/src/main/resources/META-INF/resources/app/views/self.html
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/self.html
@@ -26,7 +26,7 @@ under the License.
   </head>
   <body>
     <div ng-cloak class="container">
-      <dynamic-template-item type="login"/>
+      <dynamic-template-item type="login"></dynamic-template-item>
     </div>
   </body>
 </html>
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/templates/confirmPasswordResetTemplate.html b/client/enduser/src/main/resources/META-INF/resources/app/views/templates/confirmPasswordResetTemplate.html
new file mode 100644
index 0000000..6690689
--- /dev/null
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/templates/confirmPasswordResetTemplate.html
@@ -0,0 +1,83 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<div ng-controller="UserController">
+
+  <div id="form-container" class="col-md-6 col-md-offset-3">
+
+    <div>
+      <div class="page-header">
+        <span>{{'CONFIRM_PASSWORD_RESET'| translate}}</span>
+      </div>
+      <div class="breadcrumb-header text-center">
+
+        <div class="row">            
+          <div id="status-buttons" class="btn-group btn-breadcrumb col-md-12 col-md-offset-3">
+            <a href="#/self" class="btn btn-secondary btn-default"><i class="fa fa-home"></i></a>
+            <!--add class breadcrumb-disabled-link to buttons to prevent click-->
+            <a ui-sref-active="active" class="btn btn-secondary btn-default">Password reset</a>
+          </div>
+        </div>
+      </div>
+      <form class="signup-form" name="confirmPasswordResetForm" ng-submit="confirmPasswordReset(user, $event)" 
+            novalidate>
+
+        <div id="form-views" ui-view>
+          <div id="attribute" class="form-group">
+            <label for="user.password">Password</label>
+            <input type="password" class="form-control" name="password" ng-model="user.password" placeholder="password">
+          </div>
+
+          <div id="attribute" class="form-group">
+            <label for="confirmPassword">{{'CONFIRM_PASSWORD'| translate}}</label>
+            <input name="password" type="password" class="form-control" equals="user.password" 
+                   ng-model="confirmPassword.value"
+                   placeholder="confirm password" validate="true">
+            <validation-message name="password"/>
+          </div>
+
+          <div id="attribute" class="form-group">
+            <div class="suggestions">
+              {{'PASSWORD_STRENGTH'| translate}}:
+              <span ng-if="passStrength < 50">{{'INSECURE'| translate}}</span>
+              <span ng-if="passStrength >= 50 && passStrength <= 82">{{'ALMOSTSECURE'| translate}}</span>
+              <span ng-if="passStrength > 82">{{'VERYGOOD'| translate}}</span>
+            </div>
+            <div ng-password-strength="user.password" strength="passStrength" inner-class="progress-bar" 
+                 inner-class-prefix="progress-bar-">
+            </div>
+          </div>
+          <div id="attribute" class="form-group row">
+            <div class="col-xs-6">
+              <a id="cancel" class="btn btn-danger float-left nav-button" tabindex="0" ng-click="logout()"
+                 tabindex="0" ng-enter="logout()">
+                {{'CANCEL'| translate}}
+              </a>
+            </div>
+            <div class="col-xs-6">
+              <button id="resetpassword" type="submit" tabindex="0"
+                      class="btn btn-secondary btn-default float-right nav-button">
+                {{'SUBMIT'| translate}}
+              </button>
+            </div>
+          </div>
+        </div>
+      </form>
+    </div>
+  </div>
+</div>
diff --git a/client/enduser/src/main/resources/META-INF/resources/app/views/templates/mustChangePasswordTemplate.html b/client/enduser/src/main/resources/META-INF/resources/app/views/templates/mustChangePasswordTemplate.html
new file mode 100644
index 0000000..c0e0587
--- /dev/null
+++ b/client/enduser/src/main/resources/META-INF/resources/app/views/templates/mustChangePasswordTemplate.html
@@ -0,0 +1,82 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<div ng-controller="UserController">
+  <div id="form-container" class="col-md-6 col-md-offset-3">
+
+    <div>
+      <div class="page-header">
+        <span>{{'PASSWORD_CHANGE_REQUIRED'| translate}}</span>
+      </div>
+      <div class="breadcrumb-header text-center">
+
+        <div class="row">            
+          <div id="status-buttons" class="btn-group btn-breadcrumb col-md-12 col-md-offset-3">
+            <a class="btn btn-secondary btn-default breadcrumb-home" ng-click="logout()">
+              <i class="fa fa-power-off"style="color:red"></i>
+            </a>
+            <!--add class breadcrumb-disabled-link to buttons to prevent click-->
+            <a ui-sref-active="active" class="btn btn-secondary btn-default">{{'PASSWORD_CHANGE'| translate}}</a>
+          </div>
+        </div>
+      </div>
+      <form class="signup-form" name="changePasswordForm" ng-submit="changePassword(user, $event)" novalidate>
+
+        <div id="form-views" ui-view>
+          <div id="attribute" class="form-group">
+            <label for="user.password">{{'PASSWORD'| translate}}</label>
+            <input type="password" class="form-control" name="password" ng-model="user.password" placeholder="password">
+          </div>
+
+          <div id="attribute" class="form-group">
+            <label for="confirmPassword">{{'CONFIRM_PASSWORD'| translate}}</label>
+            <input name="password" type="password" class="form-control" equals="user.password" ng-model="confirmPassword.value"
+                   placeholder="confirm password" validate="true">
+            <validation-message name="password"/>
+          </div>
+
+          <div id="attribute" class="form-group">
+            <div class="suggestions">
+              {{'PASSWORD_STRENGTH'| translate}}: 
+              <span ng-if="passStrength < 50">{{'NOTSECURE'| translate}}</span>
+              <span ng-if="passStrength >= 50 && passStrength <= 82">{{'ALMOSTSECURE'| translate}}</span>
+              <span ng-if="passStrength > 82">{{'VERYGOOD'| translate}}</span>
+            </div>
+            <div ng-password-strength="user.password" strength="passStrength" inner-class="progress-bar" 
+                 inner-class-prefix="progress-bar-">
+            </div>
+          </div>
+          <div id="attribute" class="form-group row">
+            <div class="col-xs-6">
+              <a id="cancel" class="btn btn-danger float-left nav-button" tabindex="0" ng-click="logout()"
+                 tabindex="0" ng-enter="logout()">
+                {{'CANCEL'| translate}}
+              </a>
+            </div>
+            <div class="col-xs-6">
+              <button id="resetpassword" type="submit" tabindex="0"
+                      class="btn btn-secondary btn-default float-right nav-button">
+                {{'SUBMIT'| translate}}
+              </button>
+            </div>
+          </div>
+        </div>
+      </form>
+    </div>
+  </div>
+</div>
diff --git a/client/enduser/src/main/resources/customTemplate.json b/client/enduser/src/main/resources/customTemplate.json
index 9b760b9..e55ed4c 100644
--- a/client/enduser/src/main/resources/customTemplate.json
+++ b/client/enduser/src/main/resources/customTemplate.json
@@ -24,6 +24,22 @@
                         "css/editUser.css",
                         "css/passwordReset.css"
                       ]
+                    },
+            "must_change_password":
+                    {
+                      "templateUrl": "views/templates/mustChangePasswordTemplate.html",
+                      "css": [
+                        "css/editUser.css",
+                        "css/passwordReset.css"
+                      ]
+                    },
+            "confirm_password_reset":
+                    {
+                      "templateUrl": "views/templates/confirmPasswordResetTemplate.html",
+                      "css": [
+                        "css/editUser.css",
+                        "css/passwordReset.css"
+                      ]
                     }
           },
 
diff --git a/client/enduser/src/test/resources/customTemplate.json b/client/enduser/src/test/resources/customTemplate.json
index 3fcb140..d15684d 100644
--- a/client/enduser/src/test/resources/customTemplate.json
+++ b/client/enduser/src/test/resources/customTemplate.json
@@ -27,7 +27,25 @@
                         "css/passwordReset.css",
                         "css/templates/dark/editUser.css"
                       ]
-                    }            
+                    },
+            "must_change_password":
+                    {
+                      "templateUrl": "views/templates/mustChangePasswordTemplate.html",
+                      "css": [
+                        "css/editUser.css",
+                        "css/passwordReset.css",
+                        "css/templates/dark/editUser.css"
+                      ]
+                    },
+            "confirm_password_reset":
+                    {
+                      "templateUrl": "views/templates/confirmPasswordResetTemplate.html",
+                      "css": [
+                        "css/editUser.css",
+                        "css/passwordReset.css",
+                        "css/templates/dark/editUser.css"
+                      ]
+                    }
           },
 
   "generalAssets": 
diff --git a/fit/enduser-reference/src/main/resources/customTemplate.json b/fit/enduser-reference/src/main/resources/customTemplate.json
index 9b760b9..e55ed4c 100644
--- a/fit/enduser-reference/src/main/resources/customTemplate.json
+++ b/fit/enduser-reference/src/main/resources/customTemplate.json
@@ -24,6 +24,22 @@
                         "css/editUser.css",
                         "css/passwordReset.css"
                       ]
+                    },
+            "must_change_password":
+                    {
+                      "templateUrl": "views/templates/mustChangePasswordTemplate.html",
+                      "css": [
+                        "css/editUser.css",
+                        "css/passwordReset.css"
+                      ]
+                    },
+            "confirm_password_reset":
+                    {
+                      "templateUrl": "views/templates/confirmPasswordResetTemplate.html",
+                      "css": [
+                        "css/editUser.css",
+                        "css/passwordReset.css"
+                      ]
                     }
           },
 
diff --git a/fit/enduser-reference/src/test/resources/customTemplate.json b/fit/enduser-reference/src/test/resources/customTemplate.json
index 9b760b9..e55ed4c 100644
--- a/fit/enduser-reference/src/test/resources/customTemplate.json
+++ b/fit/enduser-reference/src/test/resources/customTemplate.json
@@ -24,6 +24,22 @@
                         "css/editUser.css",
                         "css/passwordReset.css"
                       ]
+                    },
+            "must_change_password":
+                    {
+                      "templateUrl": "views/templates/mustChangePasswordTemplate.html",
+                      "css": [
+                        "css/editUser.css",
+                        "css/passwordReset.css"
+                      ]
+                    },
+            "confirm_password_reset":
+                    {
+                      "templateUrl": "views/templates/confirmPasswordResetTemplate.html",
+                      "css": [
+                        "css/editUser.css",
+                        "css/passwordReset.css"
+                      ]
                     }
           },
 
diff --git a/src/main/asciidoc/reference-guide/workingwithapachesyncope/customization.adoc b/src/main/asciidoc/reference-guide/workingwithapachesyncope/customization.adoc
index 0f3154f..ee7b9cf 100644
--- a/src/main/asciidoc/reference-guide/workingwithapachesyncope/customization.adoc
+++ b/src/main/asciidoc/reference-guide/workingwithapachesyncope/customization.adoc
@@ -889,6 +889,22 @@ The `customTemplate.json` default content is:
                         "css/editUser.css",
                         "css/passwordReset.css"
                       ]
+                    },
+            "must_change_password":
+                    {
+                      "templateUrl": "views/templates/mustChangePasswordTemplate.html",
+                      "css": [
+                        "css/editUser.css",
+                        "css/passwordReset.css"
+                      ]
+                    },
+            "confirm_password_reset":
+                    {
+                      "templateUrl": "views/templates/confirmPasswordResetTemplate.html",
+                      "css": [
+                        "css/editUser.css",
+                        "css/passwordReset.css"
+                      ]
                     }
           },
 
@@ -1010,7 +1026,17 @@ The structure of the template sections is defined by `templateUrl` property, for
         "password_reset":
                 {
                   "templateUrl": "views/templates/passwordresetTemplate.html",
-                },          
+                },
+
+        "must_change_password":
+                {
+                  "templateUrl": "views/templates/mustChangePasswordTemplate.html",
+                },
+
+        "confirm_password_reset":
+                {
+                  "templateUrl": "views/templates/confirmPasswordResetTemplate.html",
+                }
         },
 ```