From d1ddbc573ac465ce90ced3a2ce35153a922365df Mon Sep 17 00:00:00 2001 From: borzechof99 <borzechof99@mi.fu-berlin.de> Date: Wed, 14 Jul 2021 16:22:46 +0200 Subject: [PATCH] Implemented JWT --- admin-frontend/src/App.js | 16 ++++++++++------ admin-frontend/src/dataProviderMapper.js | 10 +++++----- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/admin-frontend/src/App.js b/admin-frontend/src/App.js index 06d5847..a2ad21b 100644 --- a/admin-frontend/src/App.js +++ b/admin-frontend/src/App.js @@ -1,9 +1,11 @@ import * as React from 'react'; -import { Admin, Resource, EditGuesser, ListGuesser } from 'react-admin'; +import { Admin, Resource } from 'react-admin'; import dataProviderMapper from './dataProviderMapper'; import TreeMenu from '@bb-tech/ra-treemenu'; +import { jwtTokenAuthProvider, fetchJsonWithAuthJWTToken } from 'ra-data-django-rest-framework'; + import { SportList, SportEdit, SportCreate } from './sportList'; import { IncompleteList, IncompleteEdit } from './incompleteList'; import { QuestionList, QuestionEdit, QuestionCreate } from './questionList'; @@ -11,7 +13,7 @@ import { ScraperList } from './scraperList'; import { orderList } from './questionOrderList'; import { archiveList } from './archiveList'; import { criteriaList } from './criteriaList'; -import { GreetingEndList, GreetingEndEdit } from './greetingEndList'; +import { GreetingEndList } from './greetingEndList'; import RestoreFromTrashIcon from '@material-ui/icons/RestoreFromTrash'; import SportsKabaddiIcon from '@material-ui/icons/SportsKabaddi'; @@ -28,12 +30,9 @@ const App = () => ( dataProvider={dataProviderMapper} // A custom mapper is used because different resources need different dataProviders disableTelemetry menu={TreeMenu} + authProvider={jwtTokenAuthProvider({ obtainAuthTokenUrl: "http://localhost:8000/api/admin/token/" })} > - <Resource - name='sportarten' - options={{ "label": "Sportarten", "isMenuParent": true }} - /> <Resource name='sport' // name of the API endpoint @@ -44,6 +43,11 @@ const App = () => ( create={SportCreate} /> + <Resource + name='sportarten' + options={{ "label": "Sportarten", "isMenuParent": true }} + /> + <Resource name='sport-scraper' icon={YoutubeSearchedForIcon} diff --git a/admin-frontend/src/dataProviderMapper.js b/admin-frontend/src/dataProviderMapper.js index 8ecf7e9..49cffb6 100644 --- a/admin-frontend/src/dataProviderMapper.js +++ b/admin-frontend/src/dataProviderMapper.js @@ -1,4 +1,4 @@ -import drfProvider from 'ra-data-django-rest-framework'; +import drfProvider, { fetchJsonWithAuthJWTToken } from 'ra-data-django-rest-framework'; import sportIncompleteProvider from './sportIncompleteProvider.js'; import scraperDataProvider from './scraperDataProvider.js'; import questionOrderProvider from './questionOrderProvider.js'; @@ -19,19 +19,19 @@ import { // Depending on the need, further data providers can be defined and added const dataProviders = [ { - dataProvider: drfProvider('http://localhost:8000/api/admin'), + dataProvider: drfProvider('http://localhost:8000/api/admin', fetchJsonWithAuthJWTToken), resources: ['sport', 'question', 'sport-archive', 'criteria', 'greeting-end'], }, { - dataProvider: sportIncompleteProvider('http://localhost:8000/api/admin'), + dataProvider: sportIncompleteProvider('http://localhost:8000/api/admin', fetchJsonWithAuthJWTToken), resources: ['sport-incomplete'], }, { - dataProvider: scraperDataProvider('http://localhost:8000/api/admin'), + dataProvider: scraperDataProvider('http://localhost:8000/api/admin', fetchJsonWithAuthJWTToken), resources: ['sport-scraper'], }, { - dataProvider: questionOrderProvider('http://localhost:8000/api/admin'), + dataProvider: questionOrderProvider('http://localhost:8000/api/admin', fetchJsonWithAuthJWTToken), resources: ['question-order'], } ]; -- GitLab