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 {
Tên ảnh |
Loại ảnh |
Ngày tải lên |
- Thao tác |
+ {this.state.dataRole?.indexOf('import:edit') === -1 && this.state.dataRole?.indexOf('import:delete') === -1 ? "" : Thao tác | }
{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() {
{value.id} |
{gender} |
{value.birthday !== "" ? momment(value.birthday).format("DD-MM-YYYY") : ""} |
+ {(dataRole?.indexOf('person:edit') === -1 && dataRole?.indexOf('person:delete') === -1) ? "" :
+ {dataRole?.indexOf('person:edit') !== -1 ?
+ : ""}
+ {dataRole?.indexOf('person:delete') !== -1 ?
- |
+ : ""}
+ }
)
})
@@ -309,7 +313,7 @@ export default function LabelImage() {
FacebookID |
Giới tính |
Ngày sinh |
- Thao tác |
+ {(dataRole?.indexOf('person:edit') === -1 && dataRole?.indexOf('person:delete') === -1) ? "" : Thao tác | }
{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() {
{value.name} |
{gender} |
{value.birthday !== "" ? momment(value.birthday).format("DD-MM-YYYY") : ""} |
+ {(dataRole?.indexOf('famous:delete') === -1 && dataRole?.indexOf('famous:edit')) === -1 ? "" :
+ {dataRole?.indexOf('famous:edit') !== -1 ?
+ : ""}
+ {dataRole?.indexOf('famous:delete') !== -1 ?
- |
+ : ""}
+ }
)
})
@@ -301,7 +306,7 @@ export default function ListItem() {
Họ tên |
Giới tính |
Ngày sinh |
- Thao tác |
+ {(dataRole?.indexOf('famous:delete') === -1 && dataRole?.indexOf('famous:edit') === -1) ? "" : Thao tác | }
{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 {
{(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 && this.state.dataRole?.indexOf('level:delete') === -1) ? "" :
+ {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}
*/}
- |
+ }
)
});
@@ -205,7 +218,7 @@ class Role extends Component {
- Quyền
+ Thiết lập quyền
@@ -244,8 +257,8 @@ class Role extends Component {
STT |
Tên |
- Trạng thái |
- Thao tác |
+ {/* Trạng thái | */}
+ {(this.state.dataRole?.indexOf('level:edit') === -1 && this.state.dataRole?.indexOf('level:delete') === -1) ? "" : Thao tác | }
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() {
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) ? "" :
+ {dataRole?.indexOf('user:edit') !== -1 ?
-
+ : "" }
+ {dataRole?.indexOf('user:edit') !== -1 ?
-
+ : "" }
+ {dataRole?.indexOf('user:delete') !== -1 ?
-
- |
+ : "" }
+ }
)
})
@@ -380,17 +384,7 @@ export default function User() {
Ngày sinh |
Số điện thoại |
Trạng thái |
- Thao tác |
- {/* {
- this.state.dataRole.indexOf(this.state.type + '/' + nameTab + ':insert_or_update') !== -1
- ||
- this.state.dataRole.indexOf(this.state.type + '/' + nameTab + ':delete') !== -1
- ?
- {language[this.props.indexLanguage].textTable.action} |
- :
- ""
- } */}
-
+ {(dataRole?.indexOf('user:edit') === -1 && dataRole?.indexOf('user:delete') === -1) ? "" : Thao tác | }
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 (