Skip to content

Commit 223a189

Browse files
committed
Swag at permissions changes
1 parent be7726a commit 223a189

File tree

3 files changed

+60
-19
lines changed

3 files changed

+60
-19
lines changed
Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,37 @@
11
package com.objectcomputing.checkins.security.permissions;
22

33
public enum Permissions {
4-
CAN_VIEW_FEEDBACK_REQUEST,
5-
CAN_CREATE_FEEDBACK_REQUEST,
6-
CAN_DELETE_FEEDBACK_REQUEST,
7-
CAN_VIEW_FEEDBACK_ANSWER,
8-
CAN_DELETE_ORGANIZATION_MEMBERS,
9-
CAN_CREATE_ORGANIZATION_MEMBERS,
10-
CAN_VIEW_ROLE_PERMISSIONS,
11-
CAN_ASSIGN_ROLE_PERMISSIONS,
12-
CAN_VIEW_PERMISSIONS,
13-
CAN_VIEW_SKILLS_REPORT,
14-
CAN_VIEW_RETENTION_REPORT,
15-
CAN_VIEW_ANNIVERSARY_REPORT,
16-
CAN_VIEW_BIRTHDAY_REPORT,
17-
CAN_VIEW_PROFILE_REPORT,
18-
CAN_CREATE_CHECKINS,
19-
CAN_VIEW_CHECKINS,
20-
CAN_UPDATE_CHECKINS,
21-
}
4+
CAN_VIEW_FEEDBACK_REQUEST("View feedback requests", "Feedback"),
5+
CAN_CREATE_FEEDBACK_REQUEST("Create feedback requests", "Feedback"),
6+
CAN_DELETE_FEEDBACK_REQUEST("Delete feedback requests", "Feedback"),
7+
CAN_VIEW_FEEDBACK_ANSWER("View feedback answers", "Feedback"),
8+
CAN_DELETE_ORGANIZATION_MEMBERS("Delete organization members", "User Management"),
9+
CAN_CREATE_ORGANIZATION_MEMBERS("Create organization members", "User Management"),
10+
CAN_VIEW_ROLE_PERMISSIONS("View role permissions", "Security"),
11+
CAN_ASSIGN_ROLE_PERMISSIONS("Assign role permissions", "Security"),
12+
CAN_VIEW_PERMISSIONS("View all permissions", "Security"),
13+
CAN_VIEW_SKILLS_REPORT("View skills report", "Reporting"),
14+
CAN_VIEW_RETENTION_REPORT("View retention report", "Reporting"),
15+
CAN_VIEW_ANNIVERSARY_REPORT("View anniversary report", "Reporting"),
16+
CAN_VIEW_BIRTHDAY_REPORT("View birthday report", "Reporting"),
17+
CAN_VIEW_PROFILE_REPORT("View profile report", "Reporting"),
18+
CAN_CREATE_CHECKINS("Create check-ins", "Check-ins"),
19+
CAN_VIEW_CHECKINS("View check-ins", "Check-ins"),
20+
CAN_UPDATE_CHECKINS("Update check-ins", "Check-ins");
21+
22+
private final String description;
23+
private final String category;
24+
25+
Permissions(String description, String category) {
26+
this.description = description;
27+
this.category = category;
28+
}
29+
30+
public String getDescription() {
31+
return description;
32+
}
33+
34+
public String getCategory() {
35+
return category;
36+
}
37+
}

server/src/main/java/com/objectcomputing/checkins/services/permissions/Permission.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.objectcomputing.checkins.services.permissions;
22

3+
import com.objectcomputing.checkins.security.permissions.Permissions;
34
import io.micronaut.core.annotation.Introspected;
45
import io.micronaut.core.annotation.Nullable;
56
import io.micronaut.data.annotation.AutoPopulated;
@@ -59,13 +60,17 @@ public void setPermission(String permission) {
5960
}
6061

6162
public String getDescription() {
62-
return description;
63+
return Permissions.valueOf(permission).getDescription(); //ignoring the database for now...
6364
}
6465

6566
public void setDescription(String description) {
6667
this.description = description;
6768
}
6869

70+
public String getCategory() {
71+
return Permissions.valueOf(permission).getCategory();
72+
}
73+
6974
@Override
7075
public boolean equals(Object o) {
7176
if (this == o) return true;

web-ui/src/pages/EditPermissionsPage.jsx

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,29 @@ import { selectCurrentUserId } from "../context/selectors";
1616

1717
import "./EditPermissionsPage.css";
1818

19+
const groupPermissionsByCategory = (permissions) => permissions.reduce((categories, permission) => {
20+
const category = permission.category;
21+
const existingCategory = categories.find(cat => cat.category === category);
22+
23+
// If category exists, add permission to its permissions array
24+
if (existingCategory) {
25+
existingCategory.permissions.push(permission);
26+
} else {
27+
// Create a new category object and add it to categories
28+
categories.push({
29+
category,
30+
permissions: [permission],
31+
});
32+
}
33+
34+
return categories;
35+
}, []);
36+
1937
const EditPermissionsPage = () => {
2038
const { state } = useContext(AppContext);
2139
const { csrf } = state;
2240
const [permissionsList, setPermissionsList] = useState([]);
41+
const [categoriesList, setCategoriesList] = useState([]);
2342
const [adminId, setAdminId] = useState("");
2443
const [pdlId, setPDLId] = useState("");
2544
const [memberId, setMemberId] = useState("");
@@ -704,6 +723,7 @@ const EditPermissionsPage = () => {
704723
res.payload && res.payload.data && !res.error ? res.payload.data : null;
705724
if (data) {
706725
setPermissionsList(data);
726+
setCategoriesList(groupPermissionsByCategory(data));
707727
}
708728
};
709729
const doTask3 = async () => {

0 commit comments

Comments
 (0)