Skip to content

Commit 139a231

Browse files
authored
feat: UI pass change (#2035)
* password change prepare Signed-off-by: achmelo <a.chmelo@gmail.com> * validate new password, return to login, Signed-off-by: achmelo <a.chmelo@gmail.com> * keep expiredPass window Signed-off-by: achmelo <a.chmelo@gmail.com> * field level warning Signed-off-by: achmelo <a.chmelo@gmail.com> * suspended account info Signed-off-by: achmelo <a.chmelo@gmail.com> * refactor Signed-off-by: achmelo <a.chmelo@gmail.com> * align error numbers Signed-off-by: achmelo <a.chmelo@gmail.com> * working v2 transfer Signed-off-by: achmelo <a.chmelo@gmail.com> * button styles Signed-off-by: achmelo <a.chmelo@gmail.com> * v2 layout of login page Signed-off-by: achmelo <a.chmelo@gmail.com> * add new bcg image Signed-off-by: achmelo <a.chmelo@gmail.com> * css tweaks Signed-off-by: achmelo <a.chmelo@gmail.com> * lint fixes Signed-off-by: achmelo <a.chmelo@gmail.com> * do not allow debugger Signed-off-by: achmelo <a.chmelo@gmail.com> * map error codes to exceptions Signed-off-by: achmelo <a.chmelo@gmail.com> * GW login interface update Signed-off-by: achmelo <a.chmelo@gmail.com> * code coverage Signed-off-by: achmelo <a.chmelo@gmail.com>
1 parent b580593 commit 139a231

File tree

27 files changed

+35623
-290
lines changed

27 files changed

+35623
-290
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"messages": [
3+
{
4+
"messageType": "ERROR",
5+
"messageNumber": "ZWEAT413E",
6+
"messageContent": "The new password is not valid",
7+
"messageKey": "org.zowe.apiml.security.platform.errno.EMVSPASSWORD"
8+
}
9+
]
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"messages": [
3+
{
4+
"messageType": "ERROR",
5+
"messageNumber": "ZWEAT412E",
6+
"messageContent": "The password for the specified identity has expired",
7+
"messageKey": "org.zowe.apiml.security.platform.errno.EMVSEXPIRE"
8+
}
9+
]
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"messages": [
3+
{
4+
"messageType": "ERROR",
5+
"messageNumber": "ZWEAT414E",
6+
"messageContent": "Account suspended",
7+
"messageKey": "org.zowe.apiml.security.platform.errno.EMVSSAFEXTRERR"
8+
}
9+
]
10+
}

api-catalog-ui/frontend/mocked-backend/routes/routes.js

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,31 @@ const testinson = require('../assets/services/testinson');
77
const cademoapps = require('../assets/services/cademoapps');
88
const loginSuccess = require('../assets/services/login_success');
99
const invalidCredentials = require('../assets/services/user-name-invalid.json');
10-
10+
const passwordExpired = require('../assets/services/password-expired.json');
1111
const apiCatalog = require('../assets/apidoc/apicatalog.json');
1212
const discoverableClient = require('../assets/apidoc/discoverableclient');
1313
const sampleClient = require('../assets/apidoc/sample');
14+
const userSuspended = require('../assets/services/user-suspended.json');
15+
const newPassNotValid = require('../assets/services/new-pass-not-valid.json');
1416

1517
let allUP = false;
1618

1719
function validateCredentials({ username, password }) {
1820
return username === 'user' && password === 'user';
1921
}
22+
function isUserSuspended({ username, password }) {
23+
return username === 'susp' && password === 'user';
24+
}
25+
function validateExpiredCredentials({ username, password }) {
26+
return username === 'user' && password === 'exp';
27+
}
28+
function isNewPasswordInvalid({newPassword}) {
29+
return newPassword === 'invalid';
30+
}
31+
32+
function validatePasswordUpdate({ username, password, newPassword }) {
33+
return username === 'user' && password === 'exp' && newPassword !== undefined && newPassword !== password && newPassword !== 'invalid';
34+
}
2035

2136
const appRouter = app => {
2237
// NOTE: The root route
@@ -26,11 +41,20 @@ const appRouter = app => {
2641

2742
app.post('/apicatalog/api/v1/auth/login', async (req, res) => {
2843
const credentials = req.body;
29-
30-
if (validateCredentials(credentials)) {
44+
if (validatePasswordUpdate(credentials)) {
45+
console.log('PASSWORD UPDATE');
46+
setTimeout(() => res.status(204).send(loginSuccess), 2000);
47+
} else if (isNewPasswordInvalid(credentials)){
48+
res.status(401).send(newPassNotValid);
49+
} else if (validateCredentials(credentials)) {
3150
console.log('LOGIN');
3251
setTimeout(() => res.status(204).send(loginSuccess), 2000);
33-
} else {
52+
} else if(validateExpiredCredentials(credentials)){
53+
res.status(401).send(passwordExpired);
54+
} else if(isUserSuspended(credentials)){
55+
res.status(401).send(userSuspended);
56+
}
57+
else {
3458
console.log(invalidCredentials);
3559
res.status(401).send(invalidCredentials);
3660
}

0 commit comments

Comments
 (0)