Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions src/Policies/Collection.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,24 @@

namespace JustBetter\Veto\Policies;

use Illuminate\Database\Eloquent\Model;
use Statamic\Auth\User;
use Statamic\Entries\Collection as StatamicCollection;
use Statamic\Facades\User as UserFacade;
use Statamic\Policies\CollectionPolicy;

class Collection extends CollectionPolicy
{
/**
* @param User $user
* @param User|Model $user
* @param StatamicCollection $collection
*/
public function view($user, $collection): bool
{
$user = UserFacade::fromUser($user);
$permission = config()->string('statamic-veto.permissions.entry');

return $user->hasPermission($permission) || parent::view($user, $collection);
return $user !== null && ($user->hasPermission($permission) || parent::view($user, $collection));
}

public static function bind(): void
Expand Down
29 changes: 20 additions & 9 deletions src/Policies/Entry.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,53 +2,64 @@

namespace JustBetter\Veto\Policies;

use Illuminate\Database\Eloquent\Model;
use Statamic\Auth\User;
use Statamic\Contracts\Auth\User as UserContract;
use Statamic\Entries\Collection;
use Statamic\Entries\Entry as StatamicEntry;
use Statamic\Facades\User as UserFacade;
use Statamic\Policies\EntryPolicy;
use Statamic\Sites\Site;

class Entry extends EntryPolicy
{
/**
* @param User $user
* @param User|Model $user
* @param StatamicEntry $entry
*/
public function edit($user, $entry): bool
{
return $this->can($user) || parent::edit($user, $entry);
$user = UserFacade::fromUser($user);

return $user !== null && ($this->can($user) || parent::edit($user, $entry));
}

/**
* @param User $user
* @param User|Model $user
* @param StatamicEntry $entry
*/
public function update($user, $entry): bool
{
return $this->can($user) || parent::update($user, $entry);
$user = UserFacade::fromUser($user);

return $user !== null && ($this->can($user) || parent::update($user, $entry));
}

/**
* @param User $user
* @param User|Model $user
* @param Collection $collection
* @param Site|null $site
*/
public function create($user, $collection, $site = null): bool
{
return $this->can($user) || parent::create($user, $collection, $site);
$user = UserFacade::fromUser($user);

return $user !== null && ($this->can($user) || parent::create($user, $collection, $site));
}

/**
* @param User $user
* @param User|Model $user
* @param Collection $collection
* @param Site|null $site
*/
public function store($user, $collection, $site = null): bool
{
return $this->can($user) || parent::store($user, $collection, $site);
$user = UserFacade::fromUser($user);

return $user !== null && ($this->can($user) || parent::store($user, $collection, $site));
}

protected function can(User $user): bool
protected function can(UserContract $user): bool
{
$permission = config()->string('statamic-veto.permissions.entry');

Expand Down
7 changes: 5 additions & 2 deletions src/Policies/GlobalSet.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,24 @@

namespace JustBetter\Veto\Policies;

use Illuminate\Database\Eloquent\Model;
use Statamic\Auth\User;
use Statamic\Facades\User as UserFacade;
use Statamic\Globals\GlobalSet as StatamicGlobalSet;
use Statamic\Policies\GlobalSetPolicy;

class GlobalSet extends GlobalSetPolicy
{
/**
* @param User $user
* @param User|Model $user
* @param StatamicGlobalSet $set
*/
public function view($user, $set): bool
{
$user = UserFacade::fromUser($user);
$permission = config()->string('statamic-veto.permissions.global');

return $user->hasPermission($permission) || parent::view($user, $set);
return $user !== null && ($user->hasPermission($permission) || parent::view($user, $set));
}

public static function bind(): void
Expand Down
7 changes: 5 additions & 2 deletions src/Policies/GlobalSetVariables.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,23 @@

namespace JustBetter\Veto\Policies;

use Illuminate\Database\Eloquent\Model;
use Statamic\Auth\User;
use Statamic\Facades\User as UserFacade;
use Statamic\Policies\GlobalSetVariablesPolicy;

class GlobalSetVariables extends GlobalSetVariablesPolicy
{
/**
* @param User $user
* @param User|Model $user
* @param string $entry
*/
public function edit($user, $entry): bool
{
$user = UserFacade::fromUser($user);
$permission = config()->string('statamic-veto.permissions.global');

return $user->hasPermission($permission) || parent::edit($user, $entry);
return $user !== null && ($user->hasPermission($permission) || parent::edit($user, $entry));
}

public static function bind(): void
Expand Down
7 changes: 5 additions & 2 deletions src/Policies/Taxonomy.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,23 @@

namespace JustBetter\Veto\Policies;

use Illuminate\Database\Eloquent\Model;
use Statamic\Auth\User;
use Statamic\Facades\User as UserFacade;
use Statamic\Policies\TaxonomyPolicy;

class Taxonomy extends TaxonomyPolicy
{
/**
* @param User $user
* @param User|Model $user
* @param string $taxonomy
*/
public function view($user, $taxonomy): bool
{
$user = UserFacade::fromUser($user);
$permission = config()->string('statamic-veto.permissions.term');

return $user->hasPermission($permission) || parent::view($user, $taxonomy);
return $user !== null && ($user->hasPermission($permission) || parent::view($user, $taxonomy));
}

public static function bind(): void
Expand Down
29 changes: 20 additions & 9 deletions src/Policies/Term.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@

namespace JustBetter\Veto\Policies;

use Illuminate\Database\Eloquent\Model;
use Statamic\Auth\User;
use Statamic\Contracts\Auth\User as UserContract;
use Statamic\Facades\User as UserFacade;
use Statamic\Policies\TermPolicy;
use Statamic\Sites\Site;
use Statamic\Taxonomies\Taxonomy;
Expand All @@ -11,43 +14,51 @@
class Term extends TermPolicy
{
/**
* @param User $user
* @param User|Model $user
* @param StatamicTerm $term
*/
public function view($user, $term): bool
{
return $this->can($user) || parent::view($user, $term);
$user = UserFacade::fromUser($user);

return $user !== null && ($this->can($user) || parent::view($user, $term));
}

/**
* @param User $user
* @param User|Model $user
* @param StatamicTerm $term
*/
public function edit($user, $term): bool
{
return $this->can($user) || parent::edit($user, $term);
$user = UserFacade::fromUser($user);

return $user !== null && ($this->can($user) || parent::edit($user, $term));
}

/**
* @param User $user
* @param User|Model $user
* @param StatamicTerm $term
*/
public function update($user, $term): bool
{
return $this->can($user) || parent::update($user, $term);
$user = UserFacade::fromUser($user);

return $user !== null && ($this->can($user) || parent::update($user, $term));
}

/**
* @param User $user
* @param User|Model $user
* @param Taxonomy $taxonomy
* @param Site|null $site
*/
public function create($user, $taxonomy, $site = null): bool
{
return $this->can($user) || parent::create($user, $taxonomy, $site);
$user = UserFacade::fromUser($user);

return $user !== null && ($this->can($user) || parent::create($user, $taxonomy, $site));
}

protected function can(User $user): bool
protected function can(UserContract $user): bool
{
$permission = config()->string('statamic-veto.permissions.term');

Expand Down
Loading