FEATURE #2048: prepare routes for ACL, add some more permissions

This commit is contained in:
Michal Kváček
2017-08-11 02:07:31 +02:00
parent cccdbda543
commit 335ec4a167
41 changed files with 836 additions and 489 deletions
+53 -24
View File
@@ -8,51 +8,80 @@ use Illuminate\Auth\Access\HandlesAuthorization;
class UserPolicy extends BasicPolicy
{
use HandlesAuthorization;
protected $entity = 'users';
/**
* Determine whether the user can view the user.
* Can current user updates other users (or himself?)
*
* @param \App\Models\User $user
* @param \App\Models\User $user
* @return mixed
* @param User $currentUser
* @param User $user
*
* @return bool
*/
public function view(User $user, User $user)
public function update(User $currentUser, User $user)
{
return $currentUser->id == $user->id || $currentUser->hasAbility('update-users');
}
/**
* Determine whether the user can create users.
* Can user create other users?
*
* @param \App\Models\User $user
* @return mixed
* @param User $user
*
* @return bool
*/
public function create(User $user)
{
//
public function create(User $user) {
return $user->hasAbility('create-users');
}
/**
* Determine whether the user can update the user.
* Does current user has permissions for setting permissions to other users?
*
* @param \App\Models\User $user
* @param \App\Models\User $user
* @return mixed
* @param User $currentUser
* @param User $user
*
* @return bool
*/
public function update(User $user, User $user)
public function setPermissions(User $currentUser, User $user)
{
//
if ($currentUser->id == $user->id || $user->role == User::ROLE_VISITOR) {
return false;
}
return $currentUser->hasAbility('set-permissions-users');
}
/**
* Determine whether the user can delete the user.
* Can logged user change status of other users?
*
* @param \App\Models\User $user
* @param \App\Models\User $user
* @return mixed
* @param User $currentUser
* @param User $user
*
* @return bool
*/
public function delete(User $user, User $user)
public function changeStatus(User $currentUser, User $user)
{
//
if ($currentUser->id == $user->id) {
return false;
}
return $currentUser->hasAbility('change-status-users');
}
/**
* Can current user change role of other users?
*
* @param User $currentUser
* @param User $user
*
* @return bool
*/
public function changeRole(User $currentUser, User $user)
{
if ($currentUser->id == $user->id) {
return false;
}
return $currentUser->hasAbility('change-role-users');
}
}