create or update skip employee rule

This commit is contained in:
Cüneyt Şentürk 2023-04-27 11:44:40 +03:00
parent ed444a666e
commit bd66c98954
2 changed files with 60 additions and 3 deletions

View File

@ -67,7 +67,13 @@ class Users extends Controller
$landing_pages = $u->landing_pages;
$roles = Role::all()->reject(function ($r) {
return $r->hasPermission('read-client-portal');
$status = $r->hasPermission('read-client-portal');
if ($r->name == 'employee') {
$status = true;
}
return $status;
})->pluck('display_name', 'id');
$companies = user()->companies()->take(setting('default.select_limit'))->get()->sortBy('name')->pluck('name', 'id');
@ -129,12 +135,21 @@ class Users extends Controller
if ($user->isCustomer()) {
// Show only roles with customer permission
$roles = Role::all()->reject(function ($r) {
return !$r->hasPermission('read-client-portal');
return ! $r->hasPermission('read-client-portal');
})->pluck('display_name', 'id');
} else if ($user->isEmployee()) {
// Show only roles with employee permission
$roles = Role::where('name', 'employee')->get()->pluck('display_name', 'id');
} else {
// Don't show roles with customer permission
$roles = Role::all()->reject(function ($r) {
return $r->hasPermission('read-client-portal');
$status = $r->hasPermission('read-client-portal');
if ($r->name == 'employee') {
$status = true;
}
return $status;
})->pluck('display_name', 'id');
}

View File

@ -240,6 +240,28 @@ class User extends Authenticatable implements HasLocalePreference
return $query->wherePermissionIs('read-admin-panel');
}
/**
* Scope to only employees.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeIsEmployee($query)
{
return $query->whereHasRole('employee');
}
/**
* Scope to only users.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeIsNotEmployee($query)
{
return $query->wherePermissionIs('read-admin-panel');
}
public function scopeEmail($query, $email)
{
return $query->where('email', '=', $email);
@ -289,6 +311,26 @@ class User extends Authenticatable implements HasLocalePreference
return (bool) $this->can('read-admin-panel');
}
/**
* Determine if user is a employee.
*
* @return bool
*/
public function isEmployee()
{
return (bool) $this->hasRole('employee');
}
/**
* Determine if user is not a employee.
*
* @return bool
*/
public function isNotEmployee()
{
return (bool) ! $this->hasRole('employee');
}
public function scopeSource($query, $source)
{
return $query->where($this->qualifyColumn('created_from'), $source);