FEATURE #2048: prepare routes for ACL, add some more permissions
This commit is contained in:
+53
-24
@@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user