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",
+ }
},
```