Skip to content
Snippets Groups Projects
Commit fc110b22 authored by Marcus Eibrink-Lunzenauer's avatar Marcus Eibrink-Lunzenauer
Browse files

Use original policies to access feedback elements and entries.

parent 30fe55e4
No related branches found
No related tags found
No related merge requests found
Pipeline #17427 passed
...@@ -53,54 +53,33 @@ class Authority ...@@ -53,54 +53,33 @@ class Authority
return self::canShowFeedbackElement($user, $feedbackElement); return self::canShowFeedbackElement($user, $feedbackElement);
} }
/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public static function canCreateFeedbackEntry(User $user, FeedbackElement $element): bool public static function canCreateFeedbackEntry(User $user, FeedbackElement $element): bool
{ {
if (!$element->isFeedbackable()) { return $element->isFeedbackable($user->getId());
return false;
}
// TODO: Wann darf ich Feedback Entries schreiben
return true;
} }
/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public static function canUpdateFeedbackEntry(User $user, FeedbackEntry $entry): bool public static function canUpdateFeedbackEntry(User $user, FeedbackEntry $entry): bool
{ {
if (!$entry->isEditable()) { return $entry->isEditable($user->getId());
return false;
}
// TODO: Wann darf ich Feedback Entries bearbeiten
return true;
} }
public static function canDeleteFeedbackEntry(User $user, FeedbackEntry $entry): bool public static function canDeleteFeedbackEntry(User $user, FeedbackEntry $entry): bool
{ {
return self::canUpdateFeedbackEntry($user, $entry); return $entry->isDeletable($user->getId());
} }
/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public static function canCreateFeedbackElement(User $user, FeedbackRange $range): bool public static function canCreateFeedbackElement(User $user, FeedbackRange $range): bool
{ {
// TODO: Wann darf ich Feedback Elemente anhängen return $range->isRangeAccessible($user->getId()) &&
// bisher https://gitlab.studip.de/studip/studip/-/blob/main/lib/classes/Feedback.class.php#L76 Feedback::hasCreatePerm($range->getRangeCourseId(), $user->getId());
return true;
} }
/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public static function canUpdateFeedbackElement(User $user, FeedbackElement $element): bool public static function canUpdateFeedbackElement(User $user, FeedbackElement $element): bool
{ {
// TODO: Wann darf ich Feedback Elemente ändern? $range = $element->getRange();
return true;
return $range->isRangeAccessible($user->getId()) &&
Feedback::hasAdminPerm($range->getRangeCourseId(), $user->getId());
} }
public static function canDeleteFeedbackElement(User $user, FeedbackElement $element): bool public static function canDeleteFeedbackElement(User $user, FeedbackElement $element): bool
......
...@@ -33,16 +33,17 @@ class FeedbackEntry extends SimpleORMap ...@@ -33,16 +33,17 @@ class FeedbackEntry extends SimpleORMap
parent::configure($config); parent::configure($config);
} }
public function isEditable() public function isEditable(string $user_id = null): bool
{ {
return $this->user_id === $GLOBALS['user']->id; $user_id = $user_id ?? $GLOBALS['user']->getId();
return $this->user_id === $user_id;
} }
public function isDeletable() public function isDeletable(string $user_id = null): bool
{ {
$deletable = false; $deletable = false;
$user_id = $user_id ?? $GLOBALS['user']->getId();
$user_id = $GLOBALS['user']->id;
if ($this->user_id == $user_id) { if ($this->user_id == $user_id) {
$deletable = true; $deletable = true;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment