diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ef0babd..a5bca22c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. ## Unreleased +### Added +- Enhance: Navigate user to reset page using force reset during first login [mabhi](https://github.com/mabhi) +- Upgraded Ory Kratos client to v0.10.1 [akshay196](https://github.com/akshay196) + ## [0.1.6]- 2022-12-29 ### Fixed diff --git a/package.json b/package.json index 21563383..cf2e14fe 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "@material-ui/core": "^4.9.7", "@material-ui/icons": "^4.5.1", "@material-ui/lab": "^4.0.0-alpha.56", - "@ory/kratos-client": "^0.9.0-alpha.3", + "@ory/kratos-client": "0.10.1", "@testing-library/jest-dom": "^5.16.2", "@testing-library/react": "^12.1.2", "@testing-library/user-event": "^13.5.0", diff --git a/src/actions/Users.js b/src/actions/Users.js index 26cadd43..a9c334b1 100644 --- a/src/actions/Users.js +++ b/src/actions/Users.js @@ -78,6 +78,7 @@ export function getSSOUserDetail(name) { export function addUser(params) { return function (dispatch) { + params.spec.forceReset = true; http("auth") .post("users/", params) .then((response) => { @@ -98,6 +99,7 @@ export function addUserWithCallback(params, onSuccess, onFailure) { const organization = JSON.parse(window?.localStorage.getItem("organization")); params.metadata.partner = partner; params.metadata.organization = organization; + params.spec.forceReset = true; return function (dispatch) { http("auth") .post("users", params) @@ -188,6 +190,18 @@ export function editUser(params) { }; } +export function updateForceReset(successcb, errcb) { + http("auth") + .put(`user/reset`) + .then((editresponse) => { + console.log(editresponse); + successcb(); + }) + .catch((error) => { + errcb(error); + }); +} + export function updateSSOUser(params) { const partner = JSON.parse(window?.localStorage.getItem("partner")); const organization = JSON.parse(window?.localStorage.getItem("organization")); diff --git a/src/appMain/components/Header.js b/src/appMain/components/Header.js index d707e7ac..3f191934 100644 --- a/src/appMain/components/Header.js +++ b/src/appMain/components/Header.js @@ -1,12 +1,18 @@ import React from "react"; import AppBar from "@material-ui/core/AppBar"; +import { connect } from "react-redux"; import Toolbar from "@material-ui/core/Toolbar"; import UserInfo from "components/UserInfo"; import ParalusLogo from "assets/images/paralus-logo.png"; import TopNavBar from "./TopNavBar"; -const Header = ({ partnerDetail }) => { +const Header = ({ partnerDetail, user, userAndRoleDetail }) => { let image_src = ""; + let hasAccess = + user === null || + (!!user && !user.spec.forceReset) || + (user.spec.forceReset && + user.metadata.name !== userAndRoleDetail.metadata.name); if (partnerDetail) { image_src = ParalusLogo; } @@ -17,15 +23,20 @@ const Header = ({ partnerDetail }) => { return ( -
- - - -
-
- -
+ {/* only show the header profile details if user has already set his password */} + {hasAccess && ( + <> +
+ + + +
+
+ +
+ + )}
@@ -34,4 +45,13 @@ const Header = ({ partnerDetail }) => { ); }; -export default Header; +const mapStateToProps = ({ Users, settings }) => { + const { user } = Users; + const { userAndRoleDetail } = settings; + return { + user, + userAndRoleDetail, + }; +}; + +export default connect(mapStateToProps, null)(Header); diff --git a/src/appMain/index.js b/src/appMain/index.js index eda6e7da..4231f832 100755 --- a/src/appMain/index.js +++ b/src/appMain/index.js @@ -86,12 +86,19 @@ class AppMain extends React.Component { UserSession, userLogout, organization, + userAndRoleDetail, + user, } = this.props; let favicon_src = ParalusMark; if (partnerDetail && partnerDetail.fav_icon_link) { favicon_src = partnerDetail.fav_icon_link; } const hasAccess = this.userHasAccess(); + const forceResetEnabledForUser = + user === null || + (!!user && !user.spec.forceReset) || + (user.spec.forceReset && + user.metadata.name !== userAndRoleDetail.metadata.name); if ( !hasAccess && !UserSession.noRolesUser && @@ -165,33 +172,43 @@ class AppMain extends React.Component { /> )} - {hasAccess && currentProject && currentProject.metadata.name && ( -
-
- - - - - - - - - - - - - -
-
- )} + {hasAccess && + currentProject && + currentProject.metadata.name && + forceResetEnabledForUser && ( +
+
+ + + + + + + + + + + + + +
+
+ )} {!this.props.kubectlOpen &&