mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-08-24 17:08:28 +00:00
This commit is contained in:
parent
d7b0a11fe3
commit
f3a85c65bd
@ -139,6 +139,7 @@ const mockProp = {
|
|||||||
paging: mockPaging,
|
paging: mockPaging,
|
||||||
postFeedHandler: postFeed,
|
postFeedHandler: postFeed,
|
||||||
isAdminUser: false,
|
isAdminUser: false,
|
||||||
|
isLoggedinUser: false,
|
||||||
updateUserDetails,
|
updateUserDetails,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
||||||
import { AxiosError, AxiosResponse } from 'axios';
|
import { AxiosError, AxiosResponse } from 'axios';
|
||||||
import { isNil } from 'lodash';
|
import { isNil, toLower } from 'lodash';
|
||||||
import { observer } from 'mobx-react';
|
import { observer } from 'mobx-react';
|
||||||
import React, { Fragment, RefObject, useEffect, useState } from 'react';
|
import React, { Fragment, RefObject, useEffect, useState } from 'react';
|
||||||
import Select, { MultiValue } from 'react-select';
|
import Select, { MultiValue } from 'react-select';
|
||||||
@ -93,6 +93,7 @@ const Users = ({
|
|||||||
paging,
|
paging,
|
||||||
updateUserDetails,
|
updateUserDetails,
|
||||||
isAdminUser,
|
isAdminUser,
|
||||||
|
isLoggedinUser,
|
||||||
}: Props) => {
|
}: Props) => {
|
||||||
const [activeTab, setActiveTab] = useState(1);
|
const [activeTab, setActiveTab] = useState(1);
|
||||||
const [fieldListVisible, setFieldListVisible] = useState<boolean>(false);
|
const [fieldListVisible, setFieldListVisible] = useState<boolean>(false);
|
||||||
@ -156,10 +157,14 @@ const Users = ({
|
|||||||
|
|
||||||
const handleRolesChange = () => {
|
const handleRolesChange = () => {
|
||||||
// filter out the roles , and exclude the admin one
|
// filter out the roles , and exclude the admin one
|
||||||
const updatedRoles = selectedRoles.filter((role) => role.value !== 'admin');
|
const updatedRoles = selectedRoles.filter(
|
||||||
|
(role) => role.value !== toLower(TERM_ADMIN)
|
||||||
|
);
|
||||||
|
|
||||||
// get the admin role and send it as boolean value `iaAdmin=Boolean(isAdmin)
|
// get the admin role and send it as boolean value `iaAdmin=Boolean(isAdmin)
|
||||||
const isAdmin = selectedRoles.find((role) => role.value === 'admin');
|
const isAdmin = selectedRoles.find(
|
||||||
|
(role) => role.value === toLower(TERM_ADMIN)
|
||||||
|
);
|
||||||
updateUserDetails({
|
updateUserDetails({
|
||||||
roles: updatedRoles.map((role) => role.value),
|
roles: updatedRoles.map((role) => role.value),
|
||||||
isAdmin: Boolean(isAdmin),
|
isAdmin: Boolean(isAdmin),
|
||||||
@ -201,7 +206,7 @@ const Users = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const getDisplayNameComponent = () => {
|
const getDisplayNameComponent = () => {
|
||||||
if (isAdminUser) {
|
if (isAdminUser || isLoggedinUser) {
|
||||||
return (
|
return (
|
||||||
<div className="tw-mt-4 tw-w-full tw-text-center">
|
<div className="tw-mt-4 tw-w-full tw-text-center">
|
||||||
{isDisplayNameEdit ? (
|
{isDisplayNameEdit ? (
|
||||||
@ -267,7 +272,7 @@ const Users = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const getDescriptionComponent = () => {
|
const getDescriptionComponent = () => {
|
||||||
if (isAdminUser) {
|
if (isAdminUser || isLoggedinUser) {
|
||||||
return (
|
return (
|
||||||
<Description
|
<Description
|
||||||
description={userData.description || ''}
|
description={userData.description || ''}
|
||||||
@ -390,6 +395,17 @@ const Users = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const getRolesComponent = () => {
|
const getRolesComponent = () => {
|
||||||
|
const userRolesOption = roles?.map((role) => ({
|
||||||
|
label: getEntityName(role as unknown as EntityReference),
|
||||||
|
value: role.id,
|
||||||
|
}));
|
||||||
|
if (!userData.isAdmin) {
|
||||||
|
userRolesOption.push({
|
||||||
|
label: TERM_ADMIN,
|
||||||
|
value: toLower(TERM_ADMIN),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const rolesElement = (
|
const rolesElement = (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
{userData.isAdmin && (
|
{userData.isAdmin && (
|
||||||
@ -444,10 +460,7 @@ const Users = ({
|
|||||||
aria-label="Select roles"
|
aria-label="Select roles"
|
||||||
className="tw-ml-1"
|
className="tw-ml-1"
|
||||||
isSearchable={false}
|
isSearchable={false}
|
||||||
options={roles?.map((role) => ({
|
options={userRolesOption}
|
||||||
label: getEntityName(role as unknown as EntityReference),
|
|
||||||
value: role.id,
|
|
||||||
}))}
|
|
||||||
placeholder="Roles..."
|
placeholder="Roles..."
|
||||||
styles={reactSingleSelectCustomStyle}
|
styles={reactSingleSelectCustomStyle}
|
||||||
value={selectedRoles}
|
value={selectedRoles}
|
||||||
@ -624,8 +637,8 @@ const Users = ({
|
|||||||
];
|
];
|
||||||
if (userData.isAdmin) {
|
if (userData.isAdmin) {
|
||||||
defaultRoles.push({
|
defaultRoles.push({
|
||||||
label: 'Admin',
|
label: TERM_ADMIN,
|
||||||
value: 'admin',
|
value: toLower(TERM_ADMIN),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
setSelectedRoles(defaultRoles);
|
setSelectedRoles(defaultRoles);
|
||||||
|
@ -30,6 +30,7 @@ export interface Props {
|
|||||||
paging: Paging;
|
paging: Paging;
|
||||||
isFeedLoading: boolean;
|
isFeedLoading: boolean;
|
||||||
isAdminUser: boolean;
|
isAdminUser: boolean;
|
||||||
|
isLoggedinUser: boolean;
|
||||||
updateUserDetails: (data: UserDetails) => void;
|
updateUserDetails: (data: UserDetails) => void;
|
||||||
feedFilterHandler: (v: FeedFilter) => void;
|
feedFilterHandler: (v: FeedFilter) => void;
|
||||||
fetchFeedHandler: (filterType: FeedFilter, after?: string) => void;
|
fetchFeedHandler: (filterType: FeedFilter, after?: string) => void;
|
||||||
|
@ -195,6 +195,7 @@ const UserPage = () => {
|
|||||||
fetchFeedHandler={getFeedData}
|
fetchFeedHandler={getFeedData}
|
||||||
isAdminUser={Boolean(isAdminUser)}
|
isAdminUser={Boolean(isAdminUser)}
|
||||||
isFeedLoading={isFeedLoading}
|
isFeedLoading={isFeedLoading}
|
||||||
|
isLoggedinUser={isLoggedinUser(username)}
|
||||||
paging={paging}
|
paging={paging}
|
||||||
postFeedHandler={postFeedHandler}
|
postFeedHandler={postFeedHandler}
|
||||||
updateUserDetails={updateUserDetails}
|
updateUserDetails={updateUserDetails}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user