- Create User
+ {name} User
@@ -90,29 +104,32 @@ const ModalCreateUser = ({ opened, handler, addUser, APICall, item }) => {
form.setFieldValue('create_user', e.target.checked)}
/>
form.setFieldValue('create_role', e.target.checked)}
/>
form.setFieldValue('create_playlist', e.target.checked)}
/>
-
@@ -122,4 +139,4 @@ const ModalCreateUser = ({ opened, handler, addUser, APICall, item }) => {
);
};
-export default ModalCreateUser;
+export default ModalUserEditor;
diff --git a/src/pages/users/users-table.jsx b/src/pages/users/users-table.jsx
index 2955d9f..c633503 100644
--- a/src/pages/users/users-table.jsx
+++ b/src/pages/users/users-table.jsx
@@ -7,9 +7,13 @@ const UserTable = (props) => {
{user.login} |
- 1} color="green">View
- 1}>Update
- 1} color="red">Delete
+ 1} color="green">
+ View
+
+ props.updateItem(user)}>Update
+ 1} color="red">
+ Delete
+
|
diff --git a/src/tools/grant-access.jsx b/src/tools/grant-access.jsx
index 8f2ca61..c735d1c 100644
--- a/src/tools/grant-access.jsx
+++ b/src/tools/grant-access.jsx
@@ -12,18 +12,20 @@ export const Perm = {
};
const checkBit = (dec, perm) => {
+ if (!dec || !perm) return false;
const binStr = (dec >>> 0).toString(2);
const len = binStr.length;
- return binStr[len - perm - 1];
+ return binStr[len - perm] === '1';
};
export const checkPerm = (perm, user, item = {}) => {
+ if (!perm || !user) return false;
switch (perm) {
case Perm.CREATE_ROLE:
return user.roles.length >= 1 && checkBit(user.roles[0].permissions, Perm.CREATE_ROLE);
case Perm.CREATE_PLAYLIST:
return user.roles.length >= 1 && checkBit(user.roles[0].permissions, Perm.CREATE_PLAYLIST);
- case Perm.CREATE_ROLE:
+ case Perm.CREATE_USER:
return user.roles.length >= 1 && checkBit(user.roles[0].permissions, Perm.CREATE_USER);
case Perm.OWN_PLAYLIST:
return item?.owner_id === user.id;