From e52aac5bd4a47417f8cf39063d4845f9f4f61073 Mon Sep 17 00:00:00 2001 From: huyt Date: Fri, 14 Jan 2022 22:02:12 +0700 Subject: [PATCH] update [2] check role --- app/src/App.js | 17 +-- app/src/components/ImportImg/ImportImage.js | 21 ++- app/src/components/LabelImg/LabelImage.js | 12 +- app/src/components/List/ListItem.js | 11 +- app/src/components/Login/Login.js | 2 - app/src/components/Modal/ModaEditLabel.js | 2 +- app/src/components/Modal/ModalRole.js | 26 +++- app/src/components/Role/Role.js | 27 +++- app/src/components/SearchImg/SearchImage.js | 18 ++- app/src/components/Test/Test.js | 2 +- app/src/components/User/User.js | 26 ++-- app/src/components/layouts/Header.js | 18 ++- app/src/components/layouts/MenuBar.js | 135 +++++++++++--------- app/src/router/ReactRouter.js | 118 +++++++++++++++++ 14 files changed, 311 insertions(+), 124 deletions(-) create mode 100644 app/src/router/ReactRouter.js diff --git a/app/src/App.js b/app/src/App.js index 7c3b3ac..1460517 100644 --- a/app/src/App.js +++ b/app/src/App.js @@ -14,6 +14,7 @@ import 'antd/dist/antd.css'; import "./App.css"; import { Provider } from 'react-redux'; import store from './store'; +import ReactRouter from './router/ReactRouter'; import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'; @@ -23,21 +24,7 @@ function App() { } /> -
-
- -
- - - - - - - - -
- {/*
*/} -
+
diff --git a/app/src/components/ImportImg/ImportImage.js b/app/src/components/ImportImg/ImportImage.js index 4c6cda0..addb50e 100644 --- a/app/src/components/ImportImg/ImportImage.js +++ b/app/src/components/ImportImg/ImportImage.js @@ -12,6 +12,7 @@ import { Avatar, Tooltip, Image } from 'antd'; import {UserOutlined} from '@ant-design/icons'; import momment from 'moment'; import Select from "react-select"; +import Store from '../../store'; class ImportImage extends Component { constructor(props) { super(props); @@ -32,7 +33,15 @@ class ImportImage extends Component { dataSearch: "", optionSelect: [{value: 1, label:"Facebook"}, {value: 2, label: "Tải lên"}], valueSelected: {value: 2, label:"Tải lên"}, + dataRole: Store.getState().role.role, } + Store.subscribe(() => { + this.setState({ + dataRole: Store.getState().role.role, + }, () => { + + }); + }); this.itemsPerPage = 5; } @@ -187,14 +196,17 @@ class ImportImage extends Component { {value.origin_name} {value.import_type === 1 ? "Facebook" : "Tải lên"} {momment(value.created_time).format("DD-MM-YYYY")} + {this.state.dataRole?.indexOf('import:edit') === -1 && this.state.dataRole?.indexOf('import:delete') === -1 ? "" : + {this.state.dataRole?.indexOf('import:edit') !== -1 ? - + : ""} + {this.state.dataRole?.indexOf('import:delete') !== -1 ? - + : ""} + } ) }); @@ -285,6 +298,7 @@ class ImportImage extends Component { + {this.state.dataRole?.indexOf('import:upload') !== -1 ?
+ : "" } {/*begin: Datatable */} @@ -309,7 +324,7 @@ class ImportImage extends Component { - + {this.state.dataRole?.indexOf('import:edit') === -1 && this.state.dataRole?.indexOf('import:delete') === -1 ? "" : } {bulletedListImg} diff --git a/app/src/components/LabelImg/LabelImage.js b/app/src/components/LabelImg/LabelImage.js index b212ba1..bbb276a 100644 --- a/app/src/components/LabelImg/LabelImage.js +++ b/app/src/components/LabelImg/LabelImage.js @@ -27,8 +27,7 @@ export default function LabelImage() { const [loading, setLoading] = useState(true) const token = useSelector(state => state.isLogin.access_token); - const role = useSelector(state => state.role); - const idCompany = useSelector(state => state.boxai); + const dataRole = useSelector(state => state.role.role); console.log(token) @@ -170,7 +169,9 @@ export default function LabelImage() { + {(dataRole?.indexOf('person:edit') === -1 && dataRole?.indexOf('person:delete') === -1) ? "" : + : ""} + } ) }) @@ -309,7 +313,7 @@ export default function LabelImage() { - + {(dataRole?.indexOf('person:edit') === -1 && dataRole?.indexOf('person:delete') === -1) ? "" : } {data && tableRows(data)} diff --git a/app/src/components/List/ListItem.js b/app/src/components/List/ListItem.js index d7befcd..e1431a1 100644 --- a/app/src/components/List/ListItem.js +++ b/app/src/components/List/ListItem.js @@ -29,7 +29,7 @@ export default function ListItem() { const [activePage, setActivePage] = useState(1) const [totalItems, setTotalItems] = useState(0) - const token = useSelector(state => state.isLogin.access_token); + const dataRole = useSelector(state => state.role.role); const [dataPost, setDataPost] = useState(initialDataPost) const itemsPerPage = 5 @@ -165,7 +165,9 @@ export default function ListItem() { + {(dataRole?.indexOf('famous:delete') === -1 && dataRole?.indexOf('famous:edit')) === -1 ? "" : + : ""} + } ) }) @@ -301,7 +306,7 @@ export default function ListItem() { - + {(dataRole?.indexOf('famous:delete') === -1 && dataRole?.indexOf('famous:edit') === -1) ? "" : } {data && tableRows(data)} diff --git a/app/src/components/Login/Login.js b/app/src/components/Login/Login.js index 24b55fd..b442445 100644 --- a/app/src/components/Login/Login.js +++ b/app/src/components/Login/Login.js @@ -64,11 +64,9 @@ class Login extends Component { error: 0, loadingbtn: false }, () => { - Store.dispatch(role(data.data.roles)); }) localStorage.setItem("access_token", "Bearer " + data.access_token); Store.dispatch(login("Bearer " + data.access_token)); - Store.dispatch(setbox(data.data.company_id)); localStorage.setItem("username", data.data.username); localStorage.setItem("obj_id", data.data._id); window.location.href = "/"; diff --git a/app/src/components/Modal/ModaEditLabel.js b/app/src/components/Modal/ModaEditLabel.js index 9f4e9c0..a5ce642 100644 --- a/app/src/components/Modal/ModaEditLabel.js +++ b/app/src/components/Modal/ModaEditLabel.js @@ -350,7 +350,7 @@ const ModalEditLabel = (props) => { { var lengthChecked = 0 - console.log(this.state.listCheckOperation) if (value !== null) { var checkboxOperation = value.operations.map((val, i) => { let codeOperation = val.split(':') + if (codeOperation[1] === "view") { + codeOperation[1] = "Xem" + } else if (codeOperation[1] === "edit"){ + codeOperation[1] = "Sửa" + } else if (codeOperation[1] === "delete"){ + codeOperation[1] = "Xóa" + } else if (codeOperation[1] === "upload"){ + codeOperation[1] = "Tải lên" + } if (this.state.listCheckOperation.indexOf(val) !== -1) { lengthChecked++ } @@ -292,10 +300,24 @@ class ModalRole extends Component { ) }) + var nameTablee = "" + if (value.name === "user") { + nameTablee = "Quản lí người dùng" + } else if (value.name === "import") { + nameTablee = "Kho ảnh" + } else if (value.name === "search") { + nameTablee = "Tìm kiếm ảnh" + } else if (value.name === "famous") { + nameTablee = "Quản lí người nổi tiếng" + } else if (value.name === "person") { + nameTablee = "Gán nhãn" + } else if (value.name === "level") { + nameTablee = "Thiết lập quyền" + } return (
- {value.name} + {nameTablee} {/* {value.module.code} --- {lengthChecked} / {value.module.operation.length} */} {/* */}
diff --git a/app/src/components/Role/Role.js b/app/src/components/Role/Role.js index 5bde9a5..358b94e 100644 --- a/app/src/components/Role/Role.js +++ b/app/src/components/Role/Role.js @@ -6,6 +6,7 @@ import { PulseLoader } from 'react-spinners'; import Pagination from "react-js-pagination"; import $ from 'jquery'; import { HOST } from '../../config/index'; +import Store from '../../store'; class Role extends Component { @@ -22,7 +23,15 @@ class Role extends Component { name: "", description: "" }, + dataRole: Store.getState().role.role, }; + Store.subscribe(() => { + this.setState({ + dataRole: Store.getState().role.role, + }, () => { + + }); + }); this.itemsPerPage = 10; } @@ -131,7 +140,7 @@ class Role extends Component {
- + */} + {(this.state.dataRole?.indexOf('level:edit') === -1 && this.state.dataRole?.indexOf('level:delete') === -1) ? "" : + } ) }); @@ -205,7 +218,7 @@ class Role extends Component {

- Quyền + Thiết lập quyền

@@ -244,8 +257,8 @@ class Role extends Component { - - + {/* */} + {(this.state.dataRole?.indexOf('level:edit') === -1 && this.state.dataRole?.indexOf('level:delete') === -1) ? "" : } diff --git a/app/src/components/SearchImg/SearchImage.js b/app/src/components/SearchImg/SearchImage.js index e171dac..6311311 100644 --- a/app/src/components/SearchImg/SearchImage.js +++ b/app/src/components/SearchImg/SearchImage.js @@ -8,8 +8,7 @@ import Pagination from "react-js-pagination"; import { PulseLoader } from 'react-spinners'; import swal from 'sweetalert'; import { HOST } from '../../config/index'; - - +import Store from '../../store'; class SearchImage extends Component { constructor(props) { super(props); @@ -39,7 +38,17 @@ class SearchImage extends Component { showFirst: 0, showLast: 0, totalLength: 0, + dataRole: Store.getState().role.role, + isLogin: Store.getState().isLogin.isLogin, }; + Store.subscribe(() => { + this.setState({ + isLogin: Store.getState().isLogin.isLogin, + dataRole: Store.getState().role.role, + }, () => { + + }); + }); this.onchange = this.onchange.bind(this); this.closeModal = this.closeModal.bind(this); @@ -338,11 +347,6 @@ class SearchImage extends Component { render() { - // if (this.state.isLogin === false) { - // return ( - // - // ) - // } let rsImages = this.state.nimages.map((value, index) => { var item_active = "" if (index === 0) { diff --git a/app/src/components/Test/Test.js b/app/src/components/Test/Test.js index 6175d33..e994b00 100644 --- a/app/src/components/Test/Test.js +++ b/app/src/components/Test/Test.js @@ -46,7 +46,7 @@ export default function Test() {

- Test + Độ chính xác

diff --git a/app/src/components/User/User.js b/app/src/components/User/User.js index 99a77e0..d81d526 100644 --- a/app/src/components/User/User.js +++ b/app/src/components/User/User.js @@ -28,7 +28,7 @@ export default function User() { const [showModalPassword, setShowModalPassword] = useState(false) const [dataEdit, setDataEdit] = useState(null) - const token = useSelector(state => state.isLogin.access_token); + const dataRole = useSelector(state => state.role.role); @@ -200,21 +200,25 @@ export default function User() { Hoạt động } + {(dataRole?.indexOf('user:edit') === -1 && dataRole?.indexOf('user:delete') === -1) ? "" :
+ : "" } + } ) }) @@ -380,17 +384,7 @@ export default function User() { - - {/* { - this.state.dataRole.indexOf(this.state.type + '/' + nameTab + ':insert_or_update') !== -1 - || - this.state.dataRole.indexOf(this.state.type + '/' + nameTab + ':delete') !== -1 - ? - - : - "" - } */} - + {(dataRole?.indexOf('user:edit') === -1 && dataRole?.indexOf('user:delete') === -1) ? "" : } diff --git a/app/src/components/layouts/Header.js b/app/src/components/layouts/Header.js index 6c31d35..40c2c79 100644 --- a/app/src/components/layouts/Header.js +++ b/app/src/components/layouts/Header.js @@ -3,6 +3,9 @@ import React, { Component } from 'react'; import { withRouter } from 'react-router'; import Store from '../../store'; import { HOST } from '../../config'; +import { role } from '../../actions/role'; +import { setbox } from '../../actions/boxai'; +import { Redirect } from 'react-router-dom'; class Header extends Component { constructor(props) { super(props); @@ -11,6 +14,7 @@ class Header extends Component { obj_id : localStorage.getItem('obj_id'), isLogin: Store.getState().isLogin.isLogin, access_token: Store.getState().isLogin.access_token, + full_name: "" }; } @@ -31,8 +35,11 @@ class Header extends Component { return response.json() }).then(data => { if (data.status === 10000) { - // Store.dispatch(setbox(data.data.company_id)); - console.log(data) + Store.dispatch(setbox(data.data.company_id)); + Store.dispatch(role(data.data.roles)); + this.setState({ + full_name: data.data.full_name + }) } }).catch((error) => { console.log(error) @@ -63,6 +70,13 @@ class Header extends Component { render() { + if (this.state.isLogin === false) { + + return ( + + ) + } + return (
Tên ảnh Loại ảnh Ngày tải lênThao tácThao tác
{value.id} {gender} {value.birthday !== "" ? momment(value.birthday).format("DD-MM-YYYY") : ""} + {dataRole?.indexOf('person:edit') !== -1 ? + : ""} + {dataRole?.indexOf('person:delete') !== -1 ? -
FacebookID Giới tính Ngày sinhThao tácThao tác
{value.name} {gender} {value.birthday !== "" ? momment(value.birthday).format("DD-MM-YYYY") : ""} + {dataRole?.indexOf('famous:edit') !== -1 ? + : ""} + {dataRole?.indexOf('famous:delete') !== -1 ? -
Họ tên Giới tính Ngày sinhThao tácThao tác
{(i + this.state.offset + 1)} {e.name} + {/* { e.active === 0 ? @@ -140,8 +149,10 @@ class Role extends Component { Active {is_default} } - + {this.state.dataRole?.indexOf('level:edit') !== -1 ? + : "" } {/* {language[this.props.indexLanguage].tooltip.open_edit} */} - + {this.state.dataRole?.indexOf('level:delete') !== -1 ? + : "" } {/* {language[this.props.indexLanguage].tooltip.open_delete} */} -
STT TênTrạng tháiThao tácTrạng tháiThao tác
+ {dataRole?.indexOf('user:edit') !== -1 ? - + : "" } + {dataRole?.indexOf('user:edit') !== -1 ? - + : "" } + {dataRole?.indexOf('user:delete') !== -1 ? - -
Ngày sinh Số điện thoại Trạng tháiThao tác{language[this.props.indexLanguage].textTable.action}Thao tác