Skip to content

Commit ef79ca4

Browse files
authored
Merge pull request #1096 from jescalada/JWT-UI-integration
feat: JWT `apiAuthentication` UI integration
2 parents d9d8b18 + 551e237 commit ef79ca4

40 files changed

+453
-243
lines changed

package-lock.json

Lines changed: 50 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"axios": "^1.11.0",
4747
"bcryptjs": "^3.0.2",
4848
"bit-mask": "^1.0.2",
49-
"classnames": "2.5.1",
49+
"clsx": "^2.1.1",
5050
"concurrently": "^9.2.0",
5151
"connect-mongo": "^5.1.0",
5252
"cors": "^2.8.5",

src/constants/languageColors.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
// src/constants/languageColors.ts
2-
31
export const languageColors: Record<string, string> = {
42
'1C Enterprise': '#814CCC',
53
'2-Dimensional Array': '#38761D',

src/routes.tsx

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,11 @@ import User from './ui/views/User/User';
2525
import UserList from './ui/views/UserList/UserList';
2626
import RepoDetails from './ui/views/RepoDetails/RepoDetails';
2727
import RepoList from './ui/views/RepoList/RepoList';
28+
import SettingsView from './ui/views/Settings/Settings';
2829

2930
import { RepoIcon } from '@primer/octicons-react';
30-
import { Group, AccountCircle, Dashboard } from '@material-ui/icons';
31+
import { Group, AccountCircle, Dashboard, Settings } from '@material-ui/icons';
32+
3133
import { Route } from './types/models';
3234

3335
const dashboardRoutes: Route[] = [
@@ -97,6 +99,18 @@ const dashboardRoutes: Route[] = [
9799
layout: '/dashboard',
98100
visible: false,
99101
},
102+
{
103+
path: '/admin/settings',
104+
name: 'Settings',
105+
icon: Settings,
106+
component: (props) =>
107+
<RouteGuard
108+
component={SettingsView}
109+
fullRoutePath={`/dashboard/admin/settings`}
110+
/>,
111+
layout: '/dashboard',
112+
visible: true,
113+
},
100114
];
101115

102116
export default dashboardRoutes;

src/service/passport/jwtAuthHandler.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,6 @@ const jwtAuthHandler = (overrideConfig = null) => {
1717
return next();
1818
}
1919

20-
if (req.isAuthenticated()) {
21-
return next();
22-
}
23-
2420
const token = req.header("Authorization");
2521
if (!token) {
2622
return res.status(401).send("No token provided\n");
@@ -30,11 +26,15 @@ const jwtAuthHandler = (overrideConfig = null) => {
3026
const audience = expectedAudience || clientID;
3127

3228
if (!authorityURL) {
33-
return res.status(500).send("OIDC authority URL is not configured\n");
29+
return res.status(500).send({
30+
message: "JWT handler: authority URL is not configured\n"
31+
});
3432
}
3533

3634
if (!clientID) {
37-
return res.status(500).send("OIDC client ID is not configured\n");
35+
return res.status(500).send({
36+
message: "JWT handler: client ID is not configured\n"
37+
});
3838
}
3939

4040
const tokenParts = token.split(" ");

src/ui/components/Card/Card.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from 'react';
2-
import classNames from 'classnames';
2+
import clsx from 'clsx';
33
import { makeStyles } from '@material-ui/core/styles';
44
import styles from '../../assets/jss/material-dashboard-react/components/cardStyle';
55

@@ -23,7 +23,7 @@ const Card: React.FC<CardProps> = ({
2323
}) => {
2424
const classes = useStyles();
2525

26-
const cardClasses = classNames({
26+
const cardClasses = clsx({
2727
[classes.card]: true,
2828
[classes.cardPlain]: plain,
2929
[classes.cardProfile]: profile,

src/ui/components/Card/CardAvatar.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from 'react';
2-
import classNames from 'classnames';
2+
import clsx from 'clsx';
33
import { makeStyles } from '@material-ui/core/styles';
44
import styles from '../../assets/jss/material-dashboard-react/components/cardAvatarStyle';
55

@@ -21,7 +21,7 @@ const CardAvatar: React.FC<CardAvatarProps> = ({
2121
}) => {
2222
const classes = useStyles();
2323

24-
const cardAvatarClasses = classNames({
24+
const cardAvatarClasses = clsx({
2525
[classes.cardAvatar]: true,
2626
[classes.cardAvatarProfile]: profile,
2727
[classes.cardAvatarPlain]: plain,

src/ui/components/Card/CardBody.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from 'react';
2-
import classNames from 'classnames';
2+
import clsx from 'clsx';
33
import { makeStyles } from '@material-ui/core/styles';
44
import styles from '../../assets/jss/material-dashboard-react/components/cardBodyStyle';
55

@@ -21,7 +21,7 @@ const CardBody: React.FC<CardBodyProps> = ({
2121
}) => {
2222
const classes = useStyles();
2323

24-
const cardBodyClasses = classNames({
24+
const cardBodyClasses = clsx({
2525
[classes.cardBody]: true,
2626
[classes.cardBodyPlain]: plain,
2727
[classes.cardBodyProfile]: profile,

src/ui/components/Card/CardFooter.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from 'react';
2-
import classNames from 'classnames';
2+
import clsx from 'clsx';
33
import { makeStyles } from '@material-ui/core/styles';
44
import styles from '../../assets/jss/material-dashboard-react/components/cardFooterStyle';
55

@@ -25,7 +25,7 @@ const CardFooter: React.FC<CardFooterProps> = ({
2525
}) => {
2626
const classes = useStyles();
2727

28-
const cardFooterClasses = classNames({
28+
const cardFooterClasses = clsx({
2929
[classes.cardFooter]: true,
3030
[classes.cardFooterPlain]: plain,
3131
[classes.cardFooterProfile]: profile,

src/ui/components/Card/CardHeader.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from 'react';
2-
import classNames from 'classnames';
2+
import clsx from 'clsx';
33
import { makeStyles } from '@material-ui/core/styles';
44
import styles from '../../assets/jss/material-dashboard-react/components/cardHeaderStyle';
55

@@ -20,7 +20,7 @@ const CardHeader: React.FC<CardHeaderProps> = (props) => {
2020
const classes = useStyles();
2121
const { className, children, color, plain, stats, icon, ...rest } = props;
2222

23-
const cardHeaderClasses = classNames({
23+
const cardHeaderClasses = clsx({
2424
[classes.cardHeader]: true,
2525
[color ? classes[`${color}CardHeader`] : '']: color,
2626
[classes.cardHeaderPlain]: plain,

0 commit comments

Comments
 (0)