diff --git a/portal-ui/src/screens/Console/Groups/GroupsDetails.tsx b/portal-ui/src/screens/Console/Groups/GroupsDetails.tsx
index df3eb8c9f..ec07d087d 100644
--- a/portal-ui/src/screens/Console/Groups/GroupsDetails.tsx
+++ b/portal-ui/src/screens/Console/Groups/GroupsDetails.tsx
@@ -32,9 +32,18 @@ import PageLayout from "../Common/Layout/PageLayout";
import PanelTitle from "../Common/PanelTitle/PanelTitle";
import SearchBox from "../Common/SearchBox";
import {
+ addUserToGroupPermissions,
CONSOLE_UI_RESOURCE,
+ createGroupPermissions,
+ editGroupMembersPermissions,
+ enableDisableGroupPermissions,
+ getGroupPermissions,
IAM_PAGES,
- IAM_SCOPES,
+ listUsersPermissions,
+ permissionTooltipHelper,
+ setGroupPoliciesPermissions,
+ viewPolicyPermissions,
+ viewUserPermissions,
} from "../../../common/SecureComponent/permissions";
import {
hasPermission,
@@ -130,6 +139,12 @@ const GroupsDetails = ({ classes }: IGroupDetailsProps) => {
elementItem.includes(memberFilter)
);
+ const viewUser = hasPermission(
+ CONSOLE_UI_RESOURCE,
+ viewUserPermissions,
+ true
+ );
+
useEffect(() => {
if (groupName) {
fetchGroupInfo();
@@ -141,9 +156,28 @@ const GroupsDetails = ({ classes }: IGroupDetailsProps) => {
const isGroupEnabled = groupEnabled === "enabled";
const memberActionText = members.length > 0 ? "Edit Members" : "Add Members";
- const getGroupDetails = hasPermission(CONSOLE_UI_RESOURCE, [
- IAM_SCOPES.ADMIN_GET_GROUP,
- ]);
+ const getGroupDetails = hasPermission(
+ CONSOLE_UI_RESOURCE,
+ getGroupPermissions
+ );
+
+ const canEditGroupMembers = hasPermission(
+ CONSOLE_UI_RESOURCE,
+ editGroupMembersPermissions,
+ true
+ );
+
+ const canSetPolicies = hasPermission(
+ CONSOLE_UI_RESOURCE,
+ setGroupPoliciesPermissions,
+ true
+ );
+
+ const canViewPolicy = hasPermission(
+ CONSOLE_UI_RESOURCE,
+ viewPolicyPermissions,
+ true
+ );
function fetchGroupInfo() {
if (getGroupDetails) {
@@ -188,10 +222,19 @@ const GroupsDetails = ({ classes }: IGroupDetailsProps) => {
/>
-
+
@@ -208,7 +252,7 @@ const GroupsDetails = ({ classes }: IGroupDetailsProps) => {
{
onClick: (userName) => {
navigate(`${IAM_PAGES.USERS}/${encodeURLString(userName)}`);
},
+ disableButtonFunction: () => !viewUser,
},
]}
columns={[{ label: "Access Key", elementKey: "" }]}
@@ -226,6 +271,14 @@ const GroupsDetails = ({ classes }: IGroupDetailsProps) => {
records={filteredMembers}
entityName="Users"
idField=""
+ tooltip={
+ viewUser
+ ? ""
+ : permissionTooltipHelper(
+ viewUserPermissions,
+ "view User details"
+ )
+ }
/>
@@ -236,7 +289,16 @@ const GroupsDetails = ({ classes }: IGroupDetailsProps) => {
Policies
-
+
@@ -256,6 +319,7 @@ const GroupsDetails = ({ classes }: IGroupDetailsProps) => {
onClick: (policy) => {
navigate(`${IAM_PAGES.POLICIES}/${encodeURLString(policy)}`);
},
+ disableButtonFunction: () => !canViewPolicy,
},
]}
columns={[{ label: "Policy", elementKey: "" }]}
@@ -263,6 +327,14 @@ const GroupsDetails = ({ classes }: IGroupDetailsProps) => {
records={groupPolicies}
entityName="Policies"
idField=""
+ tooltip={
+ canViewPolicy
+ ? ""
+ : permissionTooltipHelper(
+ viewPolicyPermissions,
+ "view Policy details"
+ )
+ }
/>
@@ -287,46 +359,52 @@ const GroupsDetails = ({ classes }: IGroupDetailsProps) => {
{isGroupEnabled ? "Enabled" : "Disabled"}
-
- {
- toggleGroupStatus(!isGroupEnabled);
- }}
- switchOnly
- />
-
+
+ {
+ toggleGroupStatus(!isGroupEnabled);
+ }}
+ switchOnly
+ />
+
+
-
-
-
- }
- onClick={() => {
- setDeleteOpen(true);
- }}
- />
-
-
-
+
+
+ }
+ onClick={() => {
+ setDeleteOpen(true);
+ }}
+ />
+
+