sort role permissions by title
This commit is contained in:
parent
396b8635ca
commit
6d207b6106
@ -31,21 +31,14 @@ class Roles extends Controller
|
|||||||
*/
|
*/
|
||||||
public function create()
|
public function create()
|
||||||
{
|
{
|
||||||
$names = $permissions = [];
|
$permissions = [];
|
||||||
$all_permissions = Permission::all();
|
$actions = ['read', 'create', 'update', 'delete'];
|
||||||
|
|
||||||
foreach ($all_permissions as $permission) {
|
foreach ($actions as $action) {
|
||||||
// permission code explode - and get permission type
|
$permissions[$action] = Permission::action($action)->get()->sortBy('title')->all();
|
||||||
$n = explode('-', $permission->name);
|
|
||||||
|
|
||||||
if (!in_array($n[0], $names)) {
|
|
||||||
$names[] = $n[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
$permissions[$n[0]][] = $permission;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return view('auth.roles.create', compact('names', 'permissions'));
|
return view('auth.roles.create', compact('actions', 'permissions'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -85,21 +78,14 @@ class Roles extends Controller
|
|||||||
*/
|
*/
|
||||||
public function edit(Role $role)
|
public function edit(Role $role)
|
||||||
{
|
{
|
||||||
$names = $permissions = [];
|
$permissions = [];
|
||||||
$all_permissions = Permission::all();
|
$actions = ['read', 'create', 'update', 'delete'];
|
||||||
|
|
||||||
foreach ($all_permissions as $permission) {
|
foreach ($actions as $action) {
|
||||||
// permission code explode - and get permission type
|
$permissions[$action] = Permission::action($action)->get()->sortBy('title')->all();
|
||||||
$n = explode('-', $permission->name);
|
|
||||||
|
|
||||||
if (!in_array($n[0], $names)) {
|
|
||||||
$names[] = $n[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
$permissions[$n[0]][] = $permission;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return view('auth.roles.edit', compact('role', 'names', 'permissions'));
|
return view('auth.roles.edit', compact('role', 'actions', 'permissions'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -46,7 +46,20 @@ class Permission extends LaratrustPermission
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove extras from name.
|
* Scope to only include by action.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Database\Eloquent\Builder $query
|
||||||
|
* @param string $action
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Database\Eloquent\Builder
|
||||||
|
*/
|
||||||
|
public function scopeAction($query, $action = 'read')
|
||||||
|
{
|
||||||
|
return $query->where('name', 'like', $action . '-%');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transform display name.
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
|
@ -34,7 +34,7 @@ class Setting extends Eloquent
|
|||||||
* Scope to only include by prefix.
|
* Scope to only include by prefix.
|
||||||
*
|
*
|
||||||
* @param \Illuminate\Database\Eloquent\Builder $query
|
* @param \Illuminate\Database\Eloquent\Builder $query
|
||||||
* @param $company_id
|
* @param string $prefix
|
||||||
*
|
*
|
||||||
* @return \Illuminate\Database\Eloquent\Builder
|
* @return \Illuminate\Database\Eloquent\Builder
|
||||||
*/
|
*/
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
'files' => true,
|
'files' => true,
|
||||||
'role' => 'form',
|
'role' => 'form',
|
||||||
'class' => 'form-loading-button',
|
'class' => 'form-loading-button',
|
||||||
'novalidate' => true
|
'novalidate' => true,
|
||||||
]) !!}
|
]) !!}
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
@ -33,10 +33,10 @@
|
|||||||
|
|
||||||
<div class="nav-wrapper">
|
<div class="nav-wrapper">
|
||||||
<ul class="nav nav-pills nav-fill flex-column flex-md-row" id="tabs-icons-text" role="tablist">
|
<ul class="nav nav-pills nav-fill flex-column flex-md-row" id="tabs-icons-text" role="tablist">
|
||||||
@foreach($names as $name)
|
@foreach($actions as $action)
|
||||||
@php $active_tab_name = ($name == 'read') ? 'active' : ''; @endphp
|
@php $active_action_tab = ($action == 'read') ? 'active' : ''; @endphp
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link mb-sm-3 mb-md-0 {{ $active_tab_name }}" id="tabs-icons-text-1-tab" data-toggle="tab" href="#tab-{{ $name }}" role="tab" aria-controls="tabs-icons-text-1" aria-selected="true">{{ ucwords($name) }}</a>
|
<a class="nav-link mb-sm-3 mb-md-0 {{ $active_action_tab }}" id="tabs-icons-text-1-tab" data-toggle="tab" href="#tab-{{ $action }}" role="tab" aria-controls="tabs-icons-text-1" aria-selected="true">{{ ucwords($action) }}</a>
|
||||||
</li>
|
</li>
|
||||||
@endforeach
|
@endforeach
|
||||||
</ul>
|
</ul>
|
||||||
@ -45,31 +45,33 @@
|
|||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
@foreach($permissions as $code => $code_permissions)
|
@foreach($permissions as $action => $action_permissions)
|
||||||
@php $active_tab_code = ($code == 'read') ? 'active' : ''; @endphp
|
@php $active_action_tab = ($action == 'read') ? 'active' : ''; @endphp
|
||||||
<div class="tab-pane fade show {{ $active_tab_code }}" id="tab-{{ $code }}" role="tabpanel">
|
<div class="tab-pane fade show {{ $active_action_tab }}" id="tab-{{ $action }}" role="tabpanel">
|
||||||
<span class="btn btn-primary btn-sm" @click="select('{{ $code }}')">{{ trans('general.select_all') }}</span>
|
<span class="btn btn-primary btn-sm" @click="select('{{ $action }}')">{{ trans('general.select_all') }}</span>
|
||||||
<span class="btn btn-primary btn-sm" @click="unselect('{{ $code }}')">{{ trans('general.unselect_all') }}</span>
|
<span class="btn btn-primary btn-sm" @click="unselect('{{ $action }}')">{{ trans('general.unselect_all') }}</span>
|
||||||
|
|
||||||
@stack('permissions_input_start')
|
@stack('permissions_input_start')
|
||||||
<div class="form-group {{ $errors->has('permissions') ? 'has-error' : '' }}">
|
|
||||||
<div class="row pt-4">
|
<div class="form-group {{ $errors->has('permissions') ? 'has-error' : '' }}">
|
||||||
@foreach($code_permissions as $item)
|
<div class="row pt-4">
|
||||||
<div class="col-md-4 role-list">
|
@foreach($action_permissions as $item)
|
||||||
<div class="custom-control custom-checkbox">
|
<div class="col-md-4 role-list">
|
||||||
{{ Form::checkbox('permissions', $item->id, null, ['id' => 'permissions-' . $item->id, 'class' => 'custom-control-input', 'v-model' => 'form.permissions']) }}
|
<div class="custom-control custom-checkbox">
|
||||||
<label class="custom-control-label" for="permissions-{{ $item->id }}">
|
{{ Form::checkbox('permissions', $item->id, null, ['id' => 'permissions-' . $item->id, 'class' => 'custom-control-input', 'v-model' => 'form.permissions']) }}
|
||||||
{{ $item->title }}
|
<label class="custom-control-label" for="permissions-{{ $item->id }}">
|
||||||
</label>
|
{{ $item->title }}
|
||||||
</div>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
@if ($item->name == 'read-admin-panel' || $item->name == 'read-client-portal')
|
</div>
|
||||||
{{ Form::hidden($item->name, $item->id, ['id' => $item->name]) }}
|
@if (($item->name == 'read-admin-panel') || ($item->name == 'read-client-portal'))
|
||||||
@endif
|
{{ Form::hidden($item->name, $item->id, ['id' => $item->name]) }}
|
||||||
@endforeach
|
@endif
|
||||||
{!! $errors->first('permissions', '<p class="help-block">:message</p>') !!}
|
@endforeach
|
||||||
</div>
|
{!! $errors->first('permissions', '<p class="help-block">:message</p>') !!}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
@stack('permissions_input_end')
|
@stack('permissions_input_end')
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
'files' => true,
|
'files' => true,
|
||||||
'role' => 'form',
|
'role' => 'form',
|
||||||
'class' => 'form-loading-button',
|
'class' => 'form-loading-button',
|
||||||
'novalidate' => true
|
'novalidate' => true,
|
||||||
]) !!}
|
]) !!}
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
@ -34,10 +34,10 @@
|
|||||||
|
|
||||||
<div class="nav-wrapper">
|
<div class="nav-wrapper">
|
||||||
<ul class="nav nav-pills nav-fill flex-column flex-md-row" id="tabs-icons-text" role="tablist">
|
<ul class="nav nav-pills nav-fill flex-column flex-md-row" id="tabs-icons-text" role="tablist">
|
||||||
@foreach($names as $name)
|
@foreach($actions as $action)
|
||||||
@php $active_tab_name = ($name == 'read') ? 'active' : ''; @endphp
|
@php $active_action_tab = ($action == 'read') ? 'active' : ''; @endphp
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link mb-sm-3 mb-md-0 {{ $active_tab_name }}" id="tabs-icons-text-1-tab" data-toggle="tab" href="#tab-{{ $name }}" role="tab" aria-controls="tabs-icons-text-1" aria-selected="true">{{ ucwords($name) }}</a>
|
<a class="nav-link mb-sm-3 mb-md-0 {{ $active_action_tab }}" id="tabs-icons-text-1-tab" data-toggle="tab" href="#tab-{{ $action }}" role="tab" aria-controls="tabs-icons-text-1" aria-selected="true">{{ ucwords($action) }}</a>
|
||||||
</li>
|
</li>
|
||||||
@endforeach
|
@endforeach
|
||||||
</ul>
|
</ul>
|
||||||
@ -45,32 +45,34 @@
|
|||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="tab-content" id="myTabContent">
|
<div class="tab-content">
|
||||||
@foreach($permissions as $code => $code_permissions)
|
@foreach($permissions as $action => $action_permissions)
|
||||||
@php $active_tab_code = ($code == 'read') ? 'active' : ''; @endphp
|
@php $active_action_tab = ($action == 'read') ? 'active' : ''; @endphp
|
||||||
<div class="tab-pane fade show {{ $active_tab_code }}" id="tab-{{ $code }}" role="tabpanel" aria-labelledby="tabs-icons-text-1-tab">
|
<div class="tab-pane fade show {{ $active_action_tab }}" id="tab-{{ $action }}" role="tabpanel">
|
||||||
<span class="btn btn-primary btn-sm" @click="select('{{ $code }}')">{{trans('general.select_all')}}</span>
|
<span class="btn btn-primary btn-sm" @click="select('{{ $action }}')">{{trans('general.select_all')}}</span>
|
||||||
<span class="btn btn-primary btn-sm" @click="unselect('{{ $code }}')">{{trans('general.unselect_all')}}</span>
|
<span class="btn btn-primary btn-sm" @click="unselect('{{ $action }}')">{{trans('general.unselect_all')}}</span>
|
||||||
|
|
||||||
@stack('permissions_input_start')
|
@stack('permissions_input_start')
|
||||||
<div class="form-group {{ $errors->has('permissions') ? 'has-error' : '' }}">
|
|
||||||
<div class="row pt-4">
|
<div class="form-group {{ $errors->has('permissions') ? 'has-error' : '' }}">
|
||||||
@foreach($code_permissions as $item)
|
<div class="row pt-4">
|
||||||
<div class="col-md-4 role-list">
|
@foreach($action_permissions as $item)
|
||||||
<div class="custom-control custom-checkbox">
|
<div class="col-md-4 role-list">
|
||||||
{{ Form::checkbox('permissions', $item->id, null, ['id' => 'permissions-' . $item->id, 'class' => 'custom-control-input', 'v-model' => 'form.permissions']) }}
|
<div class="custom-control custom-checkbox">
|
||||||
<label class="custom-control-label" for="permissions-{{ $item->id }}">
|
{{ Form::checkbox('permissions', $item->id, null, ['id' => 'permissions-' . $item->id, 'class' => 'custom-control-input', 'v-model' => 'form.permissions']) }}
|
||||||
{{ $item->title }}
|
<label class="custom-control-label" for="permissions-{{ $item->id }}">
|
||||||
</label>
|
{{ $item->title }}
|
||||||
</div>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
@if ($item->name == 'read-admin-panel' || $item->name == 'read-client-portal')
|
</div>
|
||||||
|
@if (($item->name == 'read-admin-panel') || ($item->name == 'read-client-portal'))
|
||||||
{{ Form::hidden($item->name, $item->id, ['id' => $item->name]) }}
|
{{ Form::hidden($item->name, $item->id, ['id' => $item->name]) }}
|
||||||
@endif
|
@endif
|
||||||
@endforeach
|
@endforeach
|
||||||
{!! $errors->first('permissions', '<p class="help-block">:message</p>') !!}
|
{!! $errors->first('permissions', '<p class="help-block">:message</p>') !!}
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
@stack('permissions_input_end')
|
@stack('permissions_input_end')
|
||||||
</div>
|
</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
Loading…
x
Reference in New Issue
Block a user