User landingPages connect per role permission.
This commit is contained in:
parent
49920f0c46
commit
95bb91dcf5
@ -119,6 +119,7 @@ class Users extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
$u = new \stdClass();
|
$u = new \stdClass();
|
||||||
|
$u->role = $user->roles()->first();
|
||||||
$u->landing_pages = [];
|
$u->landing_pages = [];
|
||||||
|
|
||||||
event(new LandingPageShowing($u));
|
event(new LandingPageShowing($u));
|
||||||
@ -354,4 +355,35 @@ class Users extends Controller
|
|||||||
|
|
||||||
return response()->json($response);
|
return response()->json($response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Process request for reinviting the specified resource.
|
||||||
|
*
|
||||||
|
* @param Role $role
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function landingPages(BaseRequest $request)
|
||||||
|
{
|
||||||
|
$role = false;
|
||||||
|
|
||||||
|
if ($request->has('role_id')) {
|
||||||
|
$role = Role::find($request->get('role_id'));
|
||||||
|
}
|
||||||
|
|
||||||
|
$u = new \stdClass();
|
||||||
|
$u->role = $role;
|
||||||
|
$u->landing_pages = [];
|
||||||
|
|
||||||
|
event(new LandingPageShowing($u));
|
||||||
|
|
||||||
|
$landing_pages = $u->landing_pages;
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'success' => true,
|
||||||
|
'error' => false,
|
||||||
|
'data' => $landing_pages,
|
||||||
|
'message' => 'Get role by landing pages..',
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,8 @@ class AddLandingPages
|
|||||||
public function handle(Event $event)
|
public function handle(Event $event)
|
||||||
{
|
{
|
||||||
$user = user();
|
$user = user();
|
||||||
|
$role = ! empty($event->user->role) ? $event->user->role : false;
|
||||||
|
|
||||||
$routes = [
|
$routes = [
|
||||||
'dashboard' => [
|
'dashboard' => [
|
||||||
'permission' => 'read-common-dashboards',
|
'permission' => 'read-common-dashboards',
|
||||||
@ -79,7 +81,9 @@ class AddLandingPages
|
|||||||
];
|
];
|
||||||
|
|
||||||
foreach($routes as $key => $route) {
|
foreach($routes as $key => $route) {
|
||||||
if (!$user->can($route['permission'])) {
|
if ($role && ! $role->hasPermission($route['permission'])) {
|
||||||
|
continue;
|
||||||
|
} else if (! $user->can($route['permission'])) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
21
resources/assets/js/views/auth/users.js
vendored
21
resources/assets/js/views/auth/users.js
vendored
@ -30,6 +30,7 @@ const app = new Vue({
|
|||||||
form: new Form('user'),
|
form: new Form('user'),
|
||||||
bulk_action: new BulkAction('users'),
|
bulk_action: new BulkAction('users'),
|
||||||
show_password: false,
|
show_password: false,
|
||||||
|
landing_pages: null,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -51,5 +52,25 @@ const app = new Vue({
|
|||||||
this.show_password = false;
|
this.show_password = false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onChangeRole(role_id) {
|
||||||
|
if (! role_id) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let role_promise = Promise.resolve(window.axios.get(url + '/auth/users/landingpages', {
|
||||||
|
params: {
|
||||||
|
role_id: role_id
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
role_promise.then(response => {
|
||||||
|
if (response.data.success) {
|
||||||
|
this.landing_pages = response.data.data;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
});
|
||||||
|
},
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
@endcan
|
@endcan
|
||||||
|
|
||||||
@role('admin|manager')
|
@role('admin|manager')
|
||||||
<x-form.group.select name="roles" label="{{ trans_choice('general.roles', 1) }}" :options="$roles" />
|
<x-form.group.select name="roles" label="{{ trans_choice('general.roles', 1) }}" :options="$roles" change="onChangeRole" />
|
||||||
@endrole
|
@endrole
|
||||||
</x-slot>
|
</x-slot>
|
||||||
</x-form.section>
|
</x-form.section>
|
||||||
@ -56,7 +56,7 @@
|
|||||||
</x-slot>
|
</x-slot>
|
||||||
|
|
||||||
<x-slot name="body">
|
<x-slot name="body">
|
||||||
<x-form.group.select name="landing_page" label="{!! trans('auth.landing_page') !!}" :options="$landing_pages" selected="dashboard" />
|
<x-form.group.select name="landing_page" label="{!! trans('auth.landing_page') !!}" :options="$landing_pages" dynamicOptions="landing_pages" selected="dashboard" />
|
||||||
|
|
||||||
<x-form.group.locale />
|
<x-form.group.locale />
|
||||||
</x-slot>
|
</x-slot>
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
@endcan
|
@endcan
|
||||||
|
|
||||||
@role('admin|manager')
|
@role('admin|manager')
|
||||||
<x-form.group.select name="roles" label="{{ trans_choice('general.roles', 1) }}" :options="$roles" selected-key="roles.id" />
|
<x-form.group.select name="roles" label="{{ trans_choice('general.roles', 1) }}" :options="$roles" change="onChangeRole" selected-key="roles.id" />
|
||||||
@endrole
|
@endrole
|
||||||
</x-slot>
|
</x-slot>
|
||||||
</x-form.section>
|
</x-form.section>
|
||||||
@ -62,7 +62,7 @@
|
|||||||
</x-slot>
|
</x-slot>
|
||||||
|
|
||||||
<x-slot name="body">
|
<x-slot name="body">
|
||||||
<x-form.group.select name="landing_page" label="{{ trans('auth.landing_page') }}" :options="$landing_pages" />
|
<x-form.group.select name="landing_page" label="{{ trans('auth.landing_page') }}" :options="$landing_pages" dynamicOptions="landing_pages" />
|
||||||
|
|
||||||
<x-form.group.locale />
|
<x-form.group.locale />
|
||||||
</x-slot>
|
</x-slot>
|
||||||
|
@ -54,6 +54,7 @@ Route::group(['prefix' => 'auth'], function () {
|
|||||||
Route::get('logout', 'Auth\Login@destroy')->name('logout');
|
Route::get('logout', 'Auth\Login@destroy')->name('logout');
|
||||||
|
|
||||||
Route::get('users/autocomplete', 'Auth\Users@autocomplete')->name('users.autocomplete');
|
Route::get('users/autocomplete', 'Auth\Users@autocomplete')->name('users.autocomplete');
|
||||||
|
Route::get('users/landingpages', 'Auth\Users@landingPages')->name('users.landingpages');
|
||||||
Route::get('users/{user}/read-bills', 'Auth\Users@readUpcomingBills')->name('users.read.bills');
|
Route::get('users/{user}/read-bills', 'Auth\Users@readUpcomingBills')->name('users.read.bills');
|
||||||
Route::get('users/{user}/read-invoices', 'Auth\Users@readOverdueInvoices')->name('users.read.invoices');
|
Route::get('users/{user}/read-invoices', 'Auth\Users@readOverdueInvoices')->name('users.read.invoices');
|
||||||
Route::get('users/{user}/enable', 'Auth\Users@enable')->name('users.enable');
|
Route::get('users/{user}/enable', 'Auth\Users@enable')->name('users.enable');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user