Select Git revision
Authority.php
Forked from
Stud.IP / Stud.IP
Source project has a limited visibility.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Authority.php 13.28 KiB
<?php
namespace JsonApi\Routes\Courseware;
use Courseware\Block;
use Courseware\BlockComment;
use Courseware\BlockFeedback;
use Courseware\Container;
use Courseware\Instance;
use Courseware\StructuralElement;
use Courseware\StructuralElementComment;
use Courseware\StructuralElementFeedback;
use Courseware\Task;
use Courseware\TaskFeedback;
use Courseware\TaskGroup;
use Courseware\Template;
use Courseware\UserDataField;
use Courseware\UserProgress;
use Courseware\PublicLink;
use User;
/**
* @SuppressWarnings(PHPMD.ExcessiveClassComplexity)
* @SuppressWarnings(PHPMD.TooManyMethods)
* @SuppressWarnings(PHPMD.TooManyPublicMethods)
*/
class Authority
{
public static function canShowCoursewareInstance(User $user, Instance $resource)
{
return self::canShowStructuralElement($user, $resource->getRoot());
}
public static function canUpdateCoursewareInstance(User $user, Instance $resource)
{
return self::canUpdateStructuralElement($user, $resource->getRoot());
}
/**
* @SuppressWarnings(PHPMD.Superglobals)
*/
public static function canShowBlock(User $user, Block $resource)
{
$struct = $resource->container->structural_element;
return $struct->canRead($user);
}
public static function canIndexBlocks(User $user, Container $resource)
{
return self::canShowContainer($user, $resource);
}
public static function canCreateBlocks(User $user, Container $resource)
{
return self::canUpdateContainer($user, $resource);
}
public static function canUpdateBlock(User $user, Block $resource)
{
if ($resource->isBlocked()) {
return $resource->getBlockerUserId() == $user->id;
}
return self::canUpdateContainer($user, $resource->container);
}
public static function canDeleteBlock(User $user, Block $resource)
{
return self::canUpdateBlock($user, $resource);