Compare commits

...

8 Commits
master ... woff

Author SHA1 Message Date
f670ac03ea remove comment and update seeder 2024-05-04 21:23:14 +07:00
4c0e48a584 update seeders 2024-03-27 15:51:11 +07:00
12eb9ae6c0 update breadcrumb 2024-01-03 08:28:35 +07:00
c3519499fc update to metronic 8.2, update role fro woff 2023-12-20 17:36:57 +07:00
Daeng Deni Mardaeni
90cd2847a5 update auth usermanager 2023-10-30 16:56:43 +07:00
Daeng Deni Mardaeni
0b97350ca5 update seedr usermanager add direktorat and subdirektorat 2023-08-31 15:02:08 +07:00
375463fc77 udpate seeder 2023-08-10 22:33:52 +07:00
a30879a337 update release for sit 2023-08-10 21:26:56 +07:00
20 changed files with 170 additions and 108 deletions

View File

@ -28,7 +28,7 @@
->rawColumns(['action', 'role'])
->addIndexColumn()
->addColumn('name', function (PermissionGroup $model) {
return $model->name;
return $model->name ?? "";
})
->addColumn('role', function (PermissionGroup $model) {
$role = $model->roles($model);

View File

@ -18,6 +18,8 @@
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->foreignId('directorat_id')->nullable();
$table->foreignId('sub_directorat_id')->nullable();
$table->rememberToken();
$table->timestamps();
$table->softDeletes();

View File

@ -26,9 +26,15 @@
public function data()
{
return [
['name' => 'User'],
['name' => 'Role'],
['name' => 'Permission']
['name' => 'user'],
['name' => 'role'],
['name' => 'permission'],
['name' => 'system'],
['name' => 'parameter'],
['name' => 'pencatatan'],
['name' => 'report'],
['name' => 'logs'],
['name' => 'authorization']
];
}
}

View File

@ -15,10 +15,9 @@
*/
public function run()
{
//app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions();
$data = $this->data();
$roles = Role::all();
foreach ($roles as $role) {
$data = $this->data($role->name);
foreach ($data as $value) {
$permission = Permission::updateOrCreate([
'name' => $value['name'],
@ -26,33 +25,35 @@
], [
'permission_group_id' => $value['group']
]);
$roles = Role::all();
foreach ($roles as $role) {
if ($role->name == 'administrator') {
if($role->name=='ad' && explode('.',$value['name'])[0]=='document'){
if($permission->name=='document.read'){
$role->givePermissionTo($permission);
}
} else{
if ($permission->name == 'user.read' || $permission->name == 'role.read' || $permission->name == 'permission.read') {
$role->givePermissionTo($permission);
}
}
}
}
}
}
public function data()
public function data($role)
{
$data = [];
$model = [];
// list of model permission
$model = ['user', 'role', 'permission'];
$i = 1;
foreach ($model as $value) {
foreach ($this->crudActions($value) as $action) {
$data[] = ['name' => $action, 'group' => $i];
if ($role == 'administrator') {
$model = [['id' => 1, 'name' => 'user'], ['id' => 2, 'name' => 'role'], ['id' => 3, 'name' => 'permission'], ['id' => 4, 'name' => 'system'], ['id' => 5, 'name' => 'parameter'], ['id' => 6, 'name' => 'pencatatan'], ['id' => 7, 'name' => 'report'], ['id' => 8, 'name' => 'logs'], ['id' => 9, 'name' => 'authorization'], ['id' => 10, 'name' => 'settings']];
} elseif($role == 'operator'){
$model = [['id' => 1, 'name' => 'user'], ['id' => 2, 'name' => 'role'], ['id' => 3, 'name' => 'permission'], ['id' => 4, 'name' => 'system'], ['id' => 5, 'name' => 'parameter'], ['id' => 6, 'name' => 'pencatatan'], ['id' => 7, 'name' => 'report'], ['id' => 8, 'name' => 'logs'], ['id' => 10, 'name' => 'settings']];
} elseif($role == 'otorisator'){
$model = [['id' => 9, 'name' => 'authorization']];
}
foreach ($model as $value) {
foreach ($this->crudActions($value['name']) as $action) {
$data[] = ['name' => $action, 'group' => $value['id']];
}
$i++;
}
return $data;
@ -62,7 +63,7 @@
{
$actions = [];
// list of permission actions
$crud = ['create', 'read', 'update', 'delete'];
$crud = ['create', 'read', 'update', 'delete','authorize','report'];
foreach ($crud as $value) {
$actions[] = $name . '.' . $value;

View File

@ -27,7 +27,8 @@
{
return [
['name' => 'administrator'],
['name' => 'user'],
['name' => 'operator'],
['name' => 'otorisator']
];
}
}

View File

@ -17,24 +17,38 @@
*/
public function run(Generator $faker)
{
$roleAdmin = Role::find(1);
$roleUser = Role::find(2);
$roles = Role::all();
$user = User::create([
'name' => $faker->name,
'email' => 'demo@demo.com',
'password' => Hash::make('demo'),
'email_verified_at' => now(),
]);
$admin = User::create([
foreach ($roles as $role) {
if ($role->name == 'administrator') {
$admin = User::create([//ad dd ao
'name' => $faker->name,
'email' => 'admin@demo.com',
'password' => Hash::make('demo'),
'email_verified_at' => now()
]);
$admin->assignRole($role);
}
if ($role->name == 'operator') {
$admin = User::create([//ad dd ao
'name' => "Operator",
'email' => '880001',
'password' => Hash::make('bagbag'),
'email_verified_at' => now(),
]);
$admin->assignRole($role);
}
$admin->assignRole($roleAdmin,);
$user->assignRole($roleUser);
if ($role->name == 'otorisator') {
$admin = User::create([//ad dd ao
'name' => "Otorisator",
'email' => '770001',
'password' => Hash::make('bagbag'),
'email_verified_at' => now(),
]);
$admin->assignRole($role);
}
}
}
}

View File

@ -45,4 +45,5 @@
protected $casts = [
'email_verified_at' => 'datetime',
];
}

View File

@ -6,6 +6,8 @@
use App\Providers\RouteServiceProvider;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Modules\Usermanager\Entities\User;
use Modules\Usermanager\Http\Requests\LoginRequest;
class AuthenticatedSessionController extends Controller
@ -38,7 +40,6 @@
$userData = verify_user($id, $passwd, $SERVER_ADDR, $IPUserManager, $portUserManager, $appId);
if (strlen($userData) > 1) {
$userRawArray = explode("\t", $userData);
foreach ($userRawArray as $rkey => $rval) {
@ -46,12 +47,22 @@
$userArray[0][$key] = $val;
}
$user = User::where('user_id', '=', $request->email)->first();
$credentials = $request->validate([
'email' => ['required'],
'password' => ['required'],
]);
$user = "";
if (Auth::attempt($credentials)) {
$user = User::where(['email' => $request->email])->first();
}
if (!$user) {
$user = User::create([
$user = User::updateOrCreate([
'email' => $userArray[0]['KD_USER'],
], [
'name' => $userArray[0]['NAMA_USER'],
'user_id' => $userArray[0]['KD_USER']
'password' => Hash::make($request->password)
]);
switch ($userArray[0]['KD_GROUP']) {
@ -104,10 +115,9 @@
*/
public function destroy(Request $request)
{
Auth::guard('web')->logout();
Auth::logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect('/');

View File

@ -37,7 +37,6 @@
abort(403, 'Sorry !! You are Unauthorized to view any role !');
}
$permissiongroups = PermissionGroup::all();
return $dataTable->render('usermanager::users.roles.index', compact('permissiongroups'));
}

View File

@ -29,7 +29,7 @@
public function rules()
{
return [
'email' => ['required', 'string', 'email'],
'email' => ['required', 'string'],
'password' => ['required', 'string'],
];
}

View File

@ -5,17 +5,14 @@
@csrf
<!--begin::Heading-->
<div class="text-center mb-11">
<img alt="Logo" src="{{ image('logos/logo_agi.png') }}" class="h-150px app-sidebar-logo-default" style="margin-bottom: 100px;" />
<!--begin::Title-->
<h1 class="text-dark fw-bolder mb-3">
Sign In
</h1>
<!--end::Title-->
<!--begin::Subtitle-->
<div class="text-gray-500 fw-semibold fs-6">
Your Social Campaigns
</div>
<!--end::Subtitle--->
</div>
<!--begin::Heading-->
@ -34,18 +31,6 @@
</div>
<!--end::Input group--->
<!--begin::Wrapper-->
<div class="d-flex flex-stack flex-wrap gap-3 fs-base fw-semibold mb-8">
<div></div>
<!--begin::Link-->
<a href="/forgot-password" class="link-primary">
Forgot Password ?
</a>
<!--end::Link-->
</div>
<!--end::Wrapper-->
<!--begin::Submit button-->
<div class="d-grid mb-10">
<button type="submit" id="kt_sign_in_submit" class="btn btn-primary">
@ -53,16 +38,6 @@
</button>
</div>
<!--end::Submit button-->
<!--begin::Sign up-->
<div class="text-gray-500 text-center fw-semibold fs-6">
Not a Member yet?
<a href="/register" class="link-primary">
Sign up
</a>
</div>
<!--end::Sign up-->
</form>
<!--end::Form-->

View File

@ -15,7 +15,7 @@
@endphp
@foreach($role as $row)
<a href="javascript:" class="text-capitalize badge {{ $color[$row->id] }} fs-7 m-1">{{ $row->name }}</a>
<a href="javascript:" class="text-capitalize badge {{ $color[$row->id] }} fs-7 m-1">{{ $row->name ?? "" }}</a>
@php $i++ @endphp
@endforeach
</td>

View File

@ -3,11 +3,8 @@
<!--end::Table-->
{{-- Inject Scripts --}}
@section('scripts')
@push('scripts')
{{ $dataTable->scripts() }}
@endsection
@push('customscript')
@php
$route = explode('.', Route::currentRouteName());
@endphp

View File

@ -3,6 +3,14 @@
@endphp
<x-default-layout>
@section('title')
Permissions
@endsection
@section('breadcrumbs')
{{ Breadcrumbs::render('user-management.permissions.index') }}
@endsection
<!--begin::Card-->
<div class="card card-xxl-stretch mb-5 mb-xl-8">
<!--begin::Card body-->
@ -39,6 +47,8 @@
<i class="ki-duotone ki-exit-down fs-2"><span class="path1"></span><span class="path2"></span></i>
Export Report
</button>
<a href="{{ route($route[0].'.'.$route[1].'.create') }}" class="btn ms-3 fw-bold btn-primary text-capitalize" data-bs-toggle="modal" data-bs-target="#kt_modal_{{ $route[0] }}_{{ $route[1] }}">Add {{ str_replace('-',' ',$route[1]) }}</a>
<!--begin::Menu-->
<div id="kt_datatable_example_export_menu"
class="menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-600 menu-state-bg-light-primary fw-semibold fs-7 w-200px py-4"

View File

@ -3,11 +3,8 @@
<!--end::Table-->
{{-- Inject Scripts --}}
@section('scripts')
@push('scripts')
{{ $dataTable->scripts() }}
@endsection
@push('customscript')
@php
$route = explode('.', Route::currentRouteName());
@endphp

View File

@ -3,6 +3,13 @@
@endphp
<x-default-layout>
@section('title')
Roles
@endsection
@section('breadcrumbs')
{{ Breadcrumbs::render('user-management.roles.index') }}
@endsection
<!--begin::Card-->
<div class="card card-xxl-stretch mb-5 mb-xl-8">
<!--begin::Card body-->
@ -39,6 +46,8 @@
<i class="ki-duotone ki-exit-down fs-2"><span class="path1"></span><span class="path2"></span></i>
Export Report
</button>
<a href="{{ route($route[0].'.'.$route[1].'.create') }}" class="btn ms-3 fw-bold btn-primary text-capitalize" data-bs-toggle="modal" data-bs-target="#kt_modal_{{ $route[0] }}_{{ $route[1] }}">Add {{ str_replace('-',' ',$route[1]) }}</a>
<!--begin::Menu-->
<div id="kt_datatable_example_export_menu"
class="menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-600 menu-state-bg-light-primary fw-semibold fs-7 w-200px py-4"

View File

@ -3,11 +3,8 @@
<!--end::Table-->
{{-- Inject Scripts --}}
@section('scripts')
@push('scripts')
{{ $dataTable->scripts() }}
@endsection
@push('customscript')
@php
$route = explode('.', Route::currentRouteName());
@endphp

View File

@ -3,6 +3,14 @@
@endphp
<x-default-layout>
@section('title')
Users
@endsection
@section('breadcrumbs')
{{ Breadcrumbs::render('user-management.index') }}
@endsection
<!--begin::Card-->
<div class="card card-xxl-stretch mb-5 mb-xl-8">
<!--begin::Card body-->
@ -32,13 +40,12 @@
</div>
<div class="card-toolbar">
<!--begin::Export dropdown-->
<button type="button" class="btn btn-light-primary" data-kt-menu-trigger="click"
data-kt-menu-placement="bottom-end">
<i class="ki-duotone ki-exit-down fs-2"><span class="path1"></span><span class="path2"></span></i>
Export Report
</button>
<a href="{{ route($route[0].'.'.$route[1].'.create') }}" class="btn ms-3 fw-bold btn-primary text-capitalize" data-bs-toggle="modal" data-bs-target="#kt_modal_{{ $route[0] }}_{{ $route[1] }}">Add {{ str_replace('-',' ',$route[1]) }}</a>
<!--begin::Menu-->
<div id="kt_datatable_example_export_menu"
class="menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-600 menu-state-bg-light-primary fw-semibold fs-7 w-200px py-4"

View File

@ -19,16 +19,11 @@
Route::get('login', [AuthenticatedSessionController::class, 'create'])
->name('login');
if (isset($_ENV['METHOD_AUTH'])) {
if($_ENV['METHOD_AUTH']=='usermanager'){
Route::post('login', [AuthenticatedSessionController::class, 'storeUserManager']);
Route::post('login', [AuthenticatedSessionController::class, 'storeUsermanager']);
}else {
Route::post('login', [AuthenticatedSessionController::class, 'store']);
}
} else {
Route::post('login', [AuthenticatedSessionController::class, 'store']);
}
Route::get('forgot-password', [PasswordResetLinkController::class, 'create'])
->name('password.request');
@ -60,6 +55,6 @@
Route::post('confirm-password', [ConfirmablePasswordController::class, 'store']);
Route::get('logout', [AuthenticatedSessionController::class, 'destroy'])
Route::post('logout', [AuthenticatedSessionController::class, 'destroy'])
->name('logout');
});

41
Routes/breadcrumbs.php Normal file
View File

@ -0,0 +1,41 @@
<?php
use Diglactic\Breadcrumbs\Breadcrumbs;
use Diglactic\Breadcrumbs\Generator as BreadcrumbTrail;
// Home > Dashboard > User Management
Breadcrumbs::for('user-management.index', function (BreadcrumbTrail $trail) {
$trail->parent('dashboard');
$trail->push('User Management', route('user.users.index'));
});
// Home > Dashboard > User Management > Users
Breadcrumbs::for('user-management.users.index', function (BreadcrumbTrail $trail) {
$trail->parent('user-management.index');
$trail->push('Users', route('user.users.index'));
});
// Home > Dashboard > User Management > Users > [User]
Breadcrumbs::for('user-management.users.show', function (BreadcrumbTrail $trail, User $user) {
$trail->parent('user-management.users.index');
$trail->push(ucwords($user->name), route('user.users.show', $user));
});
// Home > Dashboard > User Management > Roles
Breadcrumbs::for('user-management.roles.index', function (BreadcrumbTrail $trail) {
$trail->parent('user-management.index');
$trail->push('Roles', route('user.roles.index'));
});
// Home > Dashboard > User Management > Roles > [Role]
Breadcrumbs::for('user-management.roles.show', function (BreadcrumbTrail $trail, Role $role) {
$trail->parent('user-management.roles.index');
$trail->push(ucwords($role->name), route('user.roles.show', $role));
});
// Home > Dashboard > User Management > Permission
Breadcrumbs::for('user-management.permissions.index', function (BreadcrumbTrail $trail) {
$trail->parent('user-management.index');
$trail->push('Permissions', route('user.permissions.index'));
});