diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx
index d96bf7bd..2c278630 100644
--- a/src/components/Navbar.tsx
+++ b/src/components/Navbar.tsx
@@ -161,7 +161,7 @@ const Navbar = () => {
return false;
}
- if (user.role?.toLowerCase() === "admin") {
+ if (user.role?.toLowerCase() === "admin" || user.role?.toLowerCase() === "owner") {
return true;
}
return !adminOnlyTabs.find((t) => t === key);
diff --git a/src/components/UserEdit.tsx b/src/components/UserEdit.tsx
index f17f4bb5..3c461ac1 100644
--- a/src/components/UserEdit.tsx
+++ b/src/components/UserEdit.tsx
@@ -79,6 +79,7 @@ const UserEdit = (props: any) => {
const [formUser, setFormUser] = useState({} as FormUser);
const [form] = Form.useForm();
const [isAdmin, setIsAdmin] = useState(false);
+ const [isOwner, setIsOwner] = useState(false);
const [confirmModal, confirmModalContextHolder] = Modal.useModal();
@@ -94,15 +95,21 @@ const UserEdit = (props: any) => {
};
const createUserToSave = (values: any): UserToSave => {
- const autoGroups =
- groups
- ?.filter((g) => values.autoGroupsNames.includes(g.id))
- .map((g) => g.id || "") || [];
+ let autoGroups:string[] = []
+ if (values.autoGroupsNames) {
+ autoGroups =
+ groups
+ ?.filter((g) => values.autoGroupsNames.includes(g.id))
+ .map((g) => g.id || "") || [];
+ }
// find groups that do not yet exist (newly added by the user)
const allGroupsNames: string[] = groups?.map((g) => g.id || "");
- const groupsToCreate = values.autoGroupsNames.filter(
- (s: string) => !allGroupsNames.includes(s)
- );
+ let groupsToCreate:string[] = []
+ if (values.autoGroupsNames) {
+ groupsToCreate = values.autoGroupsNames.filter(
+ (s: string) => !allGroupsNames.includes(s)
+ );
+ }
let userID = user ? user.id : "";
let isServiceUser = user ? user?.is_service_user : false;
return {
@@ -120,7 +127,8 @@ const UserEdit = (props: any) => {
if (users) {
let currentUser = users.find((user) => user?.is_current);
if (currentUser) {
- setIsAdmin(currentUser.role === "admin");
+ setIsAdmin(currentUser.role === "admin" || currentUser.role === "owner");
+ setIsOwner(currentUser.role === "owner");
}
}
}, [users]);
@@ -403,7 +411,7 @@ const UserEdit = (props: any) => {
>
@@ -473,7 +486,7 @@ const UserEdit = (props: any) => {
label="Block user"
style={{ marginRight: "50px", fontWeight: "500" }}
>
-
+
)}
diff --git a/src/views/Activity.tsx b/src/views/Activity.tsx
index 1ee49544..3fc8af6d 100644
--- a/src/views/Activity.tsx
+++ b/src/views/Activity.tsx
@@ -362,6 +362,20 @@ export const Activity = () => {
);
}
return "-";
+ case "transferred.owner.role":
+ if (event.meta.email || event.meta.username || event.target_id) {
+ return renderMultiRowSpan(
+ event.meta.username ? event.meta.username : event.target_id,
+ event.meta.email ? event.meta.email : "User"
+ );
+ }
+ if (event.meta.user_name) {
+ return renderMultiRowSpan(
+ event.meta.user_name,
+ event.meta.is_service_user ? "Service User" : "User"
+ );
+ }
+ return "-";
case "setupkey.group.add":
case "setupkey.group.delete":
return renderMultiRowSpan(event.meta.setupkey, "Setup Key");
diff --git a/src/views/Peers.tsx b/src/views/Peers.tsx
index 7225929d..b6ca5980 100644
--- a/src/views/Peers.tsx
+++ b/src/views/Peers.tsx
@@ -126,7 +126,7 @@ export const Peers = () => {
if (users) {
let currentUser = users.find((user) => user.is_current);
if (currentUser) {
- setIsAdmin(currentUser.role === "admin");
+ setIsAdmin(currentUser.role === "admin" || currentUser.role === "owner");
}
}
}, [users]);
diff --git a/src/views/RegularUsers.tsx b/src/views/RegularUsers.tsx
index ff8a2db5..f511fba3 100644
--- a/src/views/RegularUsers.tsx
+++ b/src/views/RegularUsers.tsx
@@ -262,7 +262,7 @@ export const RegularUsers = () => {
if (users) {
let currentUser = users.find((user) => user.is_current);
if (currentUser) {
- setIsAdmin(currentUser.role === "admin");
+ setIsAdmin(currentUser.role === "admin" || currentUser.role === "owner");
}
}
}, [users]);
@@ -758,16 +758,20 @@ export const RegularUsers = () => {
{
handleBlockUser(active, record);
}}
/>
);
- if (record.is_current) {
+ if (record.is_current || record.role === "owner") {
+ let title = "You can't block or unblock yourself"
+ if(record.role === "owner") {
+ title = "You can't block or unblock owners"
+ }
return (
-
+
{
);
- if (record.is_current) {
+ if (record.is_current || record.role === "owner") {
+ let title = "You can't delete yourself"
+ if(record.role === "owner") {
+ title = "You can't delete owners"
+ }
return (
-
+
{
if(users) {
let currentUser = users.find((user) => user.is_current)
if(currentUser) {
- setIsAdmin(currentUser.role === 'admin');
+ setIsAdmin(currentUser.role === 'admin' || currentUser.role === 'owner');
}
}
}, [users])