From 57d84f01a8e503ce41dede96a157870f18e9333d Mon Sep 17 00:00:00 2001 From: zivglik Date: Mon, 8 Jul 2024 09:22:40 +0300 Subject: [PATCH 1/3] login ui --- src/Routes/Base/Header/HelpBar.react.js | 3 +- src/Routes/Base/Header/IconUser.js | 33 +++++++++ src/Routes/Base/Login/FormLogin.js | 89 ++++++++++++++++++++++++ src/Routes/Base/Login/LoginPage.js | 65 +++++++++++++++++ src/Routes/Base/Login/MenuUser.react.js | 30 ++++++++ src/Routes/Tables/Algorithms/index.js | 6 +- src/Routes/Tables/Pipelines/index.js | 7 +- src/Routes/index.js | 9 ++- src/images/bgLogin.png | Bin 0 -> 103433 bytes 9 files changed, 236 insertions(+), 6 deletions(-) create mode 100644 src/Routes/Base/Header/IconUser.js create mode 100644 src/Routes/Base/Login/FormLogin.js create mode 100644 src/Routes/Base/Login/LoginPage.js create mode 100644 src/Routes/Base/Login/MenuUser.react.js create mode 100644 src/images/bgLogin.png diff --git a/src/Routes/Base/Header/HelpBar.react.js b/src/Routes/Base/Header/HelpBar.react.js index 7c24de7c0..322d8598f 100644 --- a/src/Routes/Base/Header/HelpBar.react.js +++ b/src/Routes/Base/Header/HelpBar.react.js @@ -6,6 +6,7 @@ import { FlexBox, Icons } from 'components/common'; import styled from 'styled-components'; import Settings from './Settings/Settings.react'; import InactiveModeTag from './InactiveMode'; +import IconUser from './IconUser'; import ExperimentPicker from './ExperimentPicker.react'; const Container = styled(FlexBox.Auto)` @@ -17,7 +18,7 @@ const HelpBar = () => ( - + } placement="bottomRight" trigger="click"> } /> diff --git a/src/Routes/Base/Header/IconUser.js b/src/Routes/Base/Header/IconUser.js new file mode 100644 index 000000000..8942e8465 --- /dev/null +++ b/src/Routes/Base/Header/IconUser.js @@ -0,0 +1,33 @@ +import React from 'react'; +import { Avatar, Popover, Tooltip } from 'antd'; +import styled from 'styled-components'; +import MenuUser from '../Login/MenuUser.react'; + +const CircleInitialWrapper = styled.div``; + +const StyledAvatar = styled(Avatar)` + background-color: #007bff; + color: white; + cursor: pointer; +`; +// eslint-disable-next-line react/prop-types +const IconUser = ({ name }) => { + const getInitial = nameStr => { + if (!nameStr) return ''; + return nameStr.toString().charAt(0).toUpperCase(); + }; + + const initial = getInitial(name); + + return ( + + } placement="bottomRight" trigger="click"> + + {initial}{' '} + + + + ); +}; + +export default IconUser; diff --git a/src/Routes/Base/Login/FormLogin.js b/src/Routes/Base/Login/FormLogin.js new file mode 100644 index 000000000..38601ba7b --- /dev/null +++ b/src/Routes/Base/Login/FormLogin.js @@ -0,0 +1,89 @@ +import React from 'react'; +import { Button, Form, Input, Typography, Checkbox } from 'antd'; +import { FlexBox } from 'components/common'; + +const { Title } = Typography; +const onFinish = values => { + // eslint-disable-next-line no-console + console.log('Success:', values); +}; +const onFinishFailed = errorInfo => { + // eslint-disable-next-line no-console + console.log('Failed:', errorInfo); +}; +const FormLogin = () => ( + +
+ + Welcome to Hkube + +
+ please enter login details below. +
+
+ +
+ + + + + + + + + + Remember me + + + + + +
+
+); +export default FormLogin; diff --git a/src/Routes/Base/Login/LoginPage.js b/src/Routes/Base/Login/LoginPage.js new file mode 100644 index 000000000..573681f05 --- /dev/null +++ b/src/Routes/Base/Login/LoginPage.js @@ -0,0 +1,65 @@ +import React from 'react'; +import styled from 'styled-components'; +import FormLogin from './FormLogin'; +import bgImage from '../../../images/bgLogin.png'; + +const BackgroundWrapper = styled.div` + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + height: 100vh; + background-image: url(${bgImage}); + background-size: contain; + background-position: center; + position: relative; + overflow: hidden; + + &::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: inherit; + filter: blur(3px); + z-index: 1; + } +`; + +const LoginBox = styled.div` + width: 20%; + padding: 20px; + background: rgba(255, 255, 255, 1); + border-radius: 10px; + box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3); + z-index: 2; + position: relative; + display: flex; + margin-top: -240px; +`; +/* +const TitleLogoBox = styled.div` + z-index: 3; + position: relative; + display: flex; + align-items: flex-start; + width: 22%; + justify-content: space-evenly; + height: 58px; +`; +*/ +const LoginPage = () => ( + + {/* + + + </TitleLogoBox> */} + <LoginBox> + <FormLogin /> + </LoginBox> + </BackgroundWrapper> +); + +export default LoginPage; diff --git a/src/Routes/Base/Login/MenuUser.react.js b/src/Routes/Base/Login/MenuUser.react.js new file mode 100644 index 000000000..cabe88cf4 --- /dev/null +++ b/src/Routes/Base/Login/MenuUser.react.js @@ -0,0 +1,30 @@ +import React, { useCallback } from 'react'; +import { FlexBox, Icons } from 'components/common'; +import { useNavigate } from 'react-router-dom'; +import { LogoutOutlined } from '@ant-design/icons'; +import styled from 'styled-components'; +import { Typography } from 'antd'; + +const { Text } = Typography; +const MenuUser = () => { + const navigate = useNavigate(); + + const onLogoutClick = useCallback(() => { + navigate('/login'); + }, [navigate]); + + const TextLink = styled(Text)` + cursor: pointer; + `; + + return ( + <FlexBox.Auto align="left" direction="column" gutter={[10, 10]}> + <FlexBox.Auto> + <Icons.Hover type={<LogoutOutlined />} onClick={onLogoutClick} /> + + <TextLink onClick={onLogoutClick}>Logout</TextLink> + </FlexBox.Auto> + </FlexBox.Auto> + ); +}; +export default MenuUser; diff --git a/src/Routes/Tables/Algorithms/index.js b/src/Routes/Tables/Algorithms/index.js index c4016a3ac..8eddac2ef 100644 --- a/src/Routes/Tables/Algorithms/index.js +++ b/src/Routes/Tables/Algorithms/index.js @@ -55,9 +55,11 @@ const AlgorithmsTable = () => { */ const onSubmitFilter = () => {}; - if (query.loading && query.data?.algorithms?.list?.length === 0) + if ( + (query.loading && query.data?.algorithms?.list?.length === 0) || + query.error + ) return <SkeletonLoader />; - if (query.error) return `Error! ${query.error.message}`; const getList = queryVal => { const filterValue = instanceFilter.algorithms.qAlgorithmName; diff --git a/src/Routes/Tables/Pipelines/index.js b/src/Routes/Tables/Pipelines/index.js index 96e82e6ee..e6eea4150 100644 --- a/src/Routes/Tables/Pipelines/index.js +++ b/src/Routes/Tables/Pipelines/index.js @@ -53,8 +53,8 @@ const PipelinesTable = () => { onSubmitFilter(instanceFilter.pipelines); }, [query.data?.pipelines?.pipelinesCount]); - if (query.loading && pipelineList.length === 0) return <SkeletonLoader />; - if (query.error) return `Error! ${query.error.message}`; + if ((query.loading && pipelineList.length === 0) || query.error) + return <SkeletonLoader />; return ( <> @@ -77,6 +77,9 @@ const PipelinesTable = () => { scroll={{ y: '80vh', }} + locale={{ + emptyText: <SkeletonLoader />, + }} /> </Space> <Routes> diff --git a/src/Routes/index.js b/src/Routes/index.js index a63479acc..9cb43652a 100644 --- a/src/Routes/index.js +++ b/src/Routes/index.js @@ -16,6 +16,9 @@ import { Drawer as SiderBarRightDrawer } from './SidebarRight'; import SidebarLeft from './Base/SidebarLeft'; import UserGuide from './Base/UserGuide'; import LoadingScreen from './Base/LoadingScreen'; + +import LoginPage from './Base/Login/LoginPage'; + import Tables from './Tables'; const LayoutFullHeight = styled(Layout)` @@ -59,6 +62,8 @@ const RoutesNav = () => { }, []); const [isDataAvailable, setIsDataAvailable] = useState(false); + const [isLogin] = useState(false); + const { apolloClient, openNotification, @@ -90,7 +95,9 @@ const RoutesNav = () => { setIsNotificationErrorShow, ]); - return isDataAvailable ? ( + return !isLogin ? ( + <LoginPage /> + ) : isDataAvailable ? ( <ThemeProvider theme={{ ...Theme }}> <ApolloProvider client={apolloClient}> <UserGuide /> diff --git a/src/images/bgLogin.png b/src/images/bgLogin.png new file mode 100644 index 0000000000000000000000000000000000000000..bdb79a676bc92f4e16f89bef2c21594403dedf18 GIT binary patch literal 103433 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±RL=2fOzTli1Y<_b@h7}qYvfS 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 literal 0 HcmV?d00001 From a45b2fa7122229bdb04429852fc4d89f5e7d1767 Mon Sep 17 00:00:00 2001 From: zivglik <zivglik@gmail.com> Date: Thu, 11 Jul 2024 08:33:21 +0300 Subject: [PATCH 2/3] add keycloak test --- package-lock.json | 23 ++++ package.json | 1 + src/Routes/Base/Login/FormLogin.js | 193 +++++++++++++++++------------ src/keycloak.js | 13 ++ 4 files changed, 152 insertions(+), 78 deletions(-) create mode 100644 src/keycloak.js diff --git a/package-lock.json b/package-lock.json index f44d17452..8c8dbdd2e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "express": "^4.17.1", "graphql": "^15.5.2", "isnumber": "^1.0.0", + "keycloak-js": "^25.0.1", "qs": "^6.10.1", "react-apexcharts": "^1.4.0", "react-collapse": "^5.1.0", @@ -21694,6 +21695,11 @@ "@sideway/pinpoint": "^2.0.0" } }, + "node_modules/js-sha256": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.11.0.tgz", + "integrity": "sha512-6xNlKayMZvds9h1Y1VWc0fQHQ82BxTXizWPEtEeGvmOUYpBRy4gbWroHLpzowe6xiQhHpelCQiE7HEdznyBL9Q==" + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -22305,6 +22311,14 @@ "integrity": "sha512-Q8206k8pTY7krW32cdmPsP+DqqLgWx/hYPSj9/+7SYqSqz7UuwPbfSe07lQtvuuaVyiSJveXk0E5RydOuWwsEg==", "dev": true }, + "node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "engines": { + "node": ">=18" + } + }, "node_modules/keycharm": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/keycharm/-/keycharm-0.4.0.tgz", @@ -22312,6 +22326,15 @@ "dev": true, "peer": true }, + "node_modules/keycloak-js": { + "version": "25.0.1", + "resolved": "https://registry.npmjs.org/keycloak-js/-/keycloak-js-25.0.1.tgz", + "integrity": "sha512-ns5sKQ5Iz3UyVGIKq2XBBXNZTlTCg9bzybR+JB2Vn+fDHIo9EGgAY4kzrBWMwbeFuegY+qJwGs05N+W9jgY9tg==", + "dependencies": { + "js-sha256": "^0.11.0", + "jwt-decode": "^4.0.0" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", diff --git a/package.json b/package.json index 5b8a878c8..9e03f3d93 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "express": "^4.17.1", "graphql": "^15.5.2", "isnumber": "^1.0.0", + "keycloak-js": "^25.0.1", "qs": "^6.10.1", "react-apexcharts": "^1.4.0", "react-collapse": "^5.1.0", diff --git a/src/Routes/Base/Login/FormLogin.js b/src/Routes/Base/Login/FormLogin.js index 38601ba7b..469b4cb5a 100644 --- a/src/Routes/Base/Login/FormLogin.js +++ b/src/Routes/Base/Login/FormLogin.js @@ -1,89 +1,126 @@ -import React from 'react'; +import React, { useState } from 'react'; import { Button, Form, Input, Typography, Checkbox } from 'antd'; import { FlexBox } from 'components/common'; +import keycloak from '../../../keycloak'; const { Title } = Typography; -const onFinish = values => { - // eslint-disable-next-line no-console - console.log('Success:', values); -}; -const onFinishFailed = errorInfo => { - // eslint-disable-next-line no-console - console.log('Failed:', errorInfo); -}; -const FormLogin = () => ( - <FlexBox> - <div> - <Title level={3} style={{ margin: '0px' }}> - Welcome to Hkube - -
- please enter login details below. -
- -
- - - +const FormLogin = () => { + const [username, setUsername] = useState(''); + const [password, setPassword] = useState(''); - - - + const onFinishFailed = errorInfo => { + // eslint-disable-next-line no-console + console.log('Failed:', errorInfo); + }; - - Remember me - + const onFinish = () => { + // event.preventDefault(); + keycloak + .init({ onLoad: 'login-required' }) + .then(authenticated => { + // console.log(authenticated); + if (authenticated) { + keycloak + .login({ + username, + password, + grantType: 'password', + clientId: keycloak.clientId, + }) + .catch(() => { + // console.error('Failed to login:', error); + }); + } else { + // console.log('User not authenticated'); + } + }) + .catch(error => { + console.error('Failed to initialize Keycloak:', error); + }); + }; - +
+ + Welcome to Hkube + +
+ please enter login details below. +
+
+ + - -
-
- -); + }} + style={{ + width: '90%', + }} + initialValues={{ + remember: true, + }} + onFinish={onFinish} + onFinishFailed={onFinishFailed} + autoComplete="off"> + + setUsername(e.target.value)} /> + + + + setPassword(e.target.value)} + /> + + + + Remember me + + + + + + + + ); +}; export default FormLogin; diff --git a/src/keycloak.js b/src/keycloak.js new file mode 100644 index 000000000..22d38e6aa --- /dev/null +++ b/src/keycloak.js @@ -0,0 +1,13 @@ +// src/keycloak.js +import Keycloak from 'keycloak-js'; + +const keycloak = new Keycloak({ + url: 'https://dev.hkube.org/hkube/keycloak', + realm: 'master', + clientId: 'api-server', + resource: 'master', + enableCors: true, + client_secret: '5mAAqUXMsFWAGCnhvhrGPVVYuZLWy7Am', +}); +// clientUId +export default keycloak; From 6c3a82d35423edb1dc40b0275bd10ee3baa06ef0 Mon Sep 17 00:00:00 2001 From: zivglik Date: Sun, 21 Jul 2024 12:15:28 +0300 Subject: [PATCH 3/3] test keykloak v2 --- src/Routes/Base/Login/FormLogin.js | 9 ++-- src/keycloak.js | 77 ++++++++++++++++++++++++++++-- 2 files changed, 80 insertions(+), 6 deletions(-) diff --git a/src/Routes/Base/Login/FormLogin.js b/src/Routes/Base/Login/FormLogin.js index 469b4cb5a..0d020f985 100644 --- a/src/Routes/Base/Login/FormLogin.js +++ b/src/Routes/Base/Login/FormLogin.js @@ -1,11 +1,12 @@ import React, { useState } from 'react'; import { Button, Form, Input, Typography, Checkbox } from 'antd'; import { FlexBox } from 'components/common'; -import keycloak from '../../../keycloak'; +import KeycloakServices from '../../../keycloak'; const { Title } = Typography; const FormLogin = () => { + const { initKeycloak } = KeycloakServices; const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); @@ -16,7 +17,7 @@ const FormLogin = () => { const onFinish = () => { // event.preventDefault(); - keycloak + /* keycloak .init({ onLoad: 'login-required' }) .then(authenticated => { // console.log(authenticated); @@ -37,7 +38,9 @@ const FormLogin = () => { }) .catch(error => { console.error('Failed to initialize Keycloak:', error); - }); + }); */ + + initKeycloak(<>login, <>error, username, password); }; return ( diff --git a/src/keycloak.js b/src/keycloak.js index 22d38e6aa..6436f7d26 100644 --- a/src/keycloak.js +++ b/src/keycloak.js @@ -1,5 +1,5 @@ // src/keycloak.js -import Keycloak from 'keycloak-js'; +/* import Keycloak from 'keycloak-js'; const keycloak = new Keycloak({ url: 'https://dev.hkube.org/hkube/keycloak', @@ -9,5 +9,76 @@ const keycloak = new Keycloak({ enableCors: true, client_secret: '5mAAqUXMsFWAGCnhvhrGPVVYuZLWy7Am', }); -// clientUId -export default keycloak; +// clientUId +export default keycloak; */ + +import Keycloak from 'keycloak-js'; + +const KeycloakConfig = { + clientId: 'api-server', // config.general('keycloak,authClientId', ','), + realm: 'browser', // config.general('keycloak,authRealm', ','), + url: 'https://cicd.hkube.org/hkube/keycloak/auth', // config.general('keycloak,authUrl', ','), + resource: 'browser', // config.general('keycloak,authResource', ','), + // enableCors: false, // config.general('keycloak,authEnableCORS', ','), + // clientUId: '5mAAqUXMsFWAGCnhvhrGPVVYuZLWy7Am', // config.general('keycloak,authClientUID', ',') + // client_secret: '5mAAqUXMsFWAGCnhvhrGPVVYuZLWy7Am', +}; + +const _kc = new Keycloak(KeycloakConfig); + +/** + * Initializes Keycloak instance and calls the provided callback function if successfully authenticated. + * + * @param onAuthenticatedCallback + */ +const initKeycloak = (appToRender, renderError, username, password) => { + _kc + .init({ + onLoad: 'login-required', + username, + password, + }) + .then(authenticated => { + if (!authenticated) { + // eslint-disable-next-line no-console + console.log('user is not authenticated..!'); + } + + appToRender(); + }) + .catch(authenticatedError => { + console.error(authenticatedError); + + // return renderError(authenticatedError); + }); +}; + +const doLogin = _kc.login; +const doLogout = _kc.logout; + +const getToken = () => _kc.token; + +const isLoggedIn = () => !!_kc.token; + +const updateToken = async (minSecValidity, successCallback) => + _kc.updateToken(minSecValidity).then(successCallback).catch(doLogin); + +const getUsername = () => _kc.tokenParsed?.preferred_username; + +const hasRole = roles => roles.some(role => _kc.hasRealmRole(role)); + +const isTokenExpired = minSecValidity => _kc.isTokenExpired(minSecValidity); + +const KeycloakServices = { + initKeycloak, + doLogin, + doLogout, + isLoggedIn, + getToken, + updateToken, + isTokenExpired, + getUsername, + hasRole, +}; + +export default KeycloakServices;