User landingPages connect per role permission.

This commit is contained in:
Cüneyt Şentürk 2022-11-05 18:44:02 +03:00
parent 49920f0c46
commit 95bb91dcf5
6 changed files with 63 additions and 5 deletions

View File

@ -119,6 +119,7 @@ class Users extends Controller
}
$u = new \stdClass();
$u->role = $user->roles()->first();
$u->landing_pages = [];
event(new LandingPageShowing($u));
@ -354,4 +355,35 @@ class Users extends Controller
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..',
]);
}
}

View File

@ -15,6 +15,8 @@ class AddLandingPages
public function handle(Event $event)
{
$user = user();
$role = ! empty($event->user->role) ? $event->user->role : false;
$routes = [
'dashboard' => [
'permission' => 'read-common-dashboards',
@ -79,7 +81,9 @@ class AddLandingPages
];
foreach($routes as $key => $route) {
if (!$user->can($route['permission'])) {
if ($role && ! $role->hasPermission($route['permission'])) {
continue;
} else if (! $user->can($route['permission'])) {
continue;
}

View File

@ -30,6 +30,7 @@ const app = new Vue({
form: new Form('user'),
bulk_action: new BulkAction('users'),
show_password: false,
landing_pages: null,
}
},
@ -51,5 +52,25 @@ const app = new Vue({
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 => {
});
},
}
});

View File

@ -44,7 +44,7 @@
@endcan
@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
</x-slot>
</x-form.section>
@ -56,7 +56,7 @@
</x-slot>
<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-slot>

View File

@ -50,7 +50,7 @@
@endcan
@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
</x-slot>
</x-form.section>
@ -62,7 +62,7 @@
</x-slot>
<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-slot>

View File

@ -54,6 +54,7 @@ Route::group(['prefix' => 'auth'], function () {
Route::get('logout', 'Auth\Login@destroy')->name('logout');
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-invoices', 'Auth\Users@readOverdueInvoices')->name('users.read.invoices');
Route::get('users/{user}/enable', 'Auth\Users@enable')->name('users.enable');