feat: allow users to open edit modal if they are the current user or admin, restrict POWERUSERs to read-only access

This commit is contained in:
Dobromir Popov (aider)
2024-09-17 10:58:49 +03:00
parent f82b5c2722
commit 2064d95346

View File

@ -51,10 +51,15 @@ const messages = {
const AvCalendar = ({ publisherId, events, selectedDate, cartEvents, lastPublishedDate }) => {
const [editLockedBefore, setEditLockedBefore] = useState(new Date(lastPublishedDate));
const [isAdmin, setIsAdmin] = useState(false);
const [isPowerUser, setIsPowerUser] = useState(false);
const [currentUserId, setCurrentUserId] = useState(null);
useEffect(() => {
(async () => {
try {
setIsAdmin(await ProtectedRoute.IsInRole(UserRole.ADMIN));
setIsPowerUser(await ProtectedRoute.IsInRole(UserRole.POWERUSER));
// Assuming you have a way to get the current user's ID
setCurrentUserId(await ProtectedRoute.GetCurrentUserId());
} catch (error) {
console.error("Failed to check admin role:", error);
}
@ -257,7 +262,7 @@ const AvCalendar = ({ publisherId, events, selectedDate, cartEvents, lastPublish
if (!start || !end) return;
//readonly for past dates (ToDo: if not admin)
if (!isAdmin) {
if (!isAdmin && !isCurrentUser) {
if (startdate < new Date() || end < new Date() || startdate > end) return;
//or if schedule is published (lastPublishedDate)
if (editLockedBefore && startdate < editLockedBefore) {