update
parent
b10863941e
commit
8d7becb39e
|
@ -0,0 +1,156 @@
|
|||
<?php
|
||||
|
||||
use App\Models\Master\MasterMenu;
|
||||
use App\Models\Master\MasterAccessMenu;
|
||||
|
||||
if (!function_exists('permission')) {
|
||||
/**
|
||||
* @param $access
|
||||
* @param $key
|
||||
* @param string $method
|
||||
* @param bool $view
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
function permission($access, $key, string $method = 'menu', bool $view = false): mixed
|
||||
{
|
||||
if (@session('group_id') != 1) {
|
||||
if ($method == 'module') {
|
||||
if (is_array($access)) {
|
||||
$model = MasterAccessMenu::where('module', 'LIKE', "{$key}%")->where('ms_group_id', session('group_id'))->first();
|
||||
$query = count(array_intersect((array)$access, (array)$model->access));
|
||||
} else {
|
||||
$query = MasterAccessMenu::where($access, true)->where('module', 'LIKE', $key.'%')->where('ms_group_id', session('group_id'))->count();
|
||||
}
|
||||
} else {
|
||||
$query = MasterAccessMenu::where($access, true)->where('ms_menu_id', $key)->where('ms_group_id', session('group_id'))->count();
|
||||
}
|
||||
|
||||
if ($query > 0) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('renderMenu')) {
|
||||
|
||||
/**
|
||||
* Loops through a folder and requires all PHP files
|
||||
* Searches sub-directories as well.
|
||||
*
|
||||
* @param $folder
|
||||
*/
|
||||
function renderMenu()
|
||||
{
|
||||
$active = true;
|
||||
$parent = MasterMenu::where('status',true)->where('menu_type','sidebar')->where('parent_id',0)->get();
|
||||
$html = '';
|
||||
foreach ($parent as $p1) {
|
||||
// echo $p1->MsMenuId.'<br>';
|
||||
$child2 = MasterMenu::where('status',true)->where('menu_type','sidebar')->where('parent_id',$p1->MsMenuId)->get();
|
||||
$access1 = permission('is_read', $p1->MsMenuId, 'menu', true);
|
||||
|
||||
$ch1 = count($child2) > 0 ? '' : '';
|
||||
$link1 = count($child2) > 0 ? '' : 'menu-link';
|
||||
|
||||
if ($access1) {
|
||||
$active1 = $active ? ' ' . null : null;
|
||||
|
||||
$html .= '<li class="' . $ch1 . $active1 . '"><a class="' . $link1 . '" href="' . url($p1->url) . '"><i class="' . $p1->menu_icons . '"></i> <span class="nav-link-text" data-i18n="nav.application_intel">' . @$p1->title.'</span>';
|
||||
if (count($child2) > 0) {
|
||||
$html .= '</a>';
|
||||
$html .= '<ul class="menu-subs">';
|
||||
foreach ($child2 as $p2) {
|
||||
$child3 = MasterMenu::where('status',true)->where('menu_type','sidebar')->where('parent_id',$p2->MsMenuId)->get();
|
||||
$access2 = permission('is_read', $p2->MsMenuId, 'menu', true);
|
||||
$ch2 = count($child3) > 0 ? '' : '';
|
||||
$link2 = count($child3) > 0 ? '' : 'menu-link';
|
||||
if ($access2) {
|
||||
$active2 = $active ? ' ' . null : null;
|
||||
$html .= '<li class="' . $ch2 . '"><a class="' . $link2 . $active2 . '" href="' . url($p2->url) . '"> <i class="' . $p2->menu_icons . '"></i> <span class="nav-link-text" data-i18n="nav.application_intel">' . @$p2->title.'<span>';
|
||||
if (count($child3) > 0) {
|
||||
$html .= '</a>';
|
||||
$html .= '<ul>';
|
||||
foreach ($child3 as $p3) {
|
||||
$child4 = MasterMenu::where('status',true)->where('menu_type','sidebar')->where('parent_id',$p3->MsMenuId)->get();
|
||||
$access3 = permission('is_read', $p3->MsMenuId, 'menu', true);
|
||||
$ch3 = count($child4) > 0 ? '' : '';
|
||||
$link3 = count($child4) > 0 ? '' : 'menu-link';
|
||||
if ($access3) {
|
||||
$active3 = $active ? ' ' . null : null;
|
||||
$html .= '<li class="' . $ch3 . '"><a class="' . $link3 . $active3 . '" href="' . url($p3->url) . '"> <span class="nav-link-text" data-i18n="nav.application_intel">' . @$p3->title.'</span>';
|
||||
if (count($child4) > 0) {
|
||||
$html .= '</a>';
|
||||
$html .= '<ul class="menu-subs">';
|
||||
foreach ($child4 as $p4) {
|
||||
$html .= '<li class=" ' . null . '"><a class="menu-link" href="' . url($p4->url) . '"> <span class="nav-link-text" data-i18n="nav.application_intel">' . @$p4->title.'<span>';
|
||||
}
|
||||
$html .= '</ul>';
|
||||
} else {
|
||||
$html .= '</a>';
|
||||
}
|
||||
$html .= '</li>';
|
||||
}
|
||||
}
|
||||
$html .= '</ul>';
|
||||
} else {
|
||||
$html .= '</a>';
|
||||
}
|
||||
$html .= '</li>';
|
||||
}
|
||||
}
|
||||
$html .= '</ul>';
|
||||
} else {
|
||||
$html .= '</a>';
|
||||
}
|
||||
$html .= '</li>';
|
||||
}
|
||||
}
|
||||
return $html;
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('include_route_files')) {
|
||||
/**
|
||||
* Loops through a folder and requires all PHP files
|
||||
* Searches sub-directories as well.
|
||||
*
|
||||
* @param $folder
|
||||
*/
|
||||
function include_route_files($folder)
|
||||
{
|
||||
include_files_in_folder($folder);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('include_files_in_folder')) {
|
||||
/**
|
||||
* Loops through a folder and requires all PHP files
|
||||
* Searches sub-directories as well.
|
||||
*
|
||||
* @param $folder
|
||||
*/
|
||||
function include_files_in_folder($folder)
|
||||
{
|
||||
try {
|
||||
$rdi = new RecursiveDirectoryIterator($folder);
|
||||
$it = new RecursiveIteratorIterator($rdi);
|
||||
|
||||
while ($it->valid()) {
|
||||
if (!$it->isDot() && $it->isFile() && $it->isReadable() && $it->current()->getExtension() === 'php') {
|
||||
require $it->key();
|
||||
}
|
||||
|
||||
$it->next();
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
echo $e->getMessage();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -19,30 +19,82 @@ class CustomLoginController extends Controller
|
|||
public function post_login(Request $request)
|
||||
{
|
||||
Validator::make($request->all(), [
|
||||
'email' => 'required|email',
|
||||
'email' => 'required',
|
||||
'password' => 'required',
|
||||
])->validate();
|
||||
|
||||
$credentials = array('email' => $request->email, 'password' => $request->password);
|
||||
|
||||
$user = User::where('email', $credentials['email'])->first();
|
||||
if(!@$user){
|
||||
$user = User::where('username', $credentials['email'])->first();
|
||||
|
||||
if ($user && Hash::check($credentials['password'], $user->password)) {
|
||||
Auth::attempt(['email' => $request->email, 'password' => $request->password]);
|
||||
if ($user && Hash::check($credentials['password'], $user->password)) {
|
||||
Auth::attempt(['username' => $request->email, 'password' => $request->password]);
|
||||
|
||||
return redirect('dashboard')->with([
|
||||
'message' => trans('Selamat datang kembali'),
|
||||
'type' => "success"
|
||||
]);
|
||||
|
||||
$session = [
|
||||
'username' => $user->username,
|
||||
'name' => $user->name,
|
||||
'email' => $user->email,
|
||||
'npsn' => @$user->sekolah->npsn,
|
||||
'ms_tingkat_sekolah_id' => @$user->sekolah->ms_tingkat_sekolah_id,
|
||||
'status_sekolah' => @$user->sekolah->status_sekolah,
|
||||
'alamat_sekolah' => @$user->sekolah->alamat_sekolah,
|
||||
'kontak_person' => @$user->sekolah->kontak_person,
|
||||
'telp' => @$user->sekolah->telp,
|
||||
'currYear' => date('Y'),
|
||||
'group_id' => @$user->ms_group_id,
|
||||
];
|
||||
session($session);
|
||||
|
||||
return redirect('dashboard')->with([
|
||||
'message' => trans('Selamat datang kembali'),
|
||||
'type' => "success"
|
||||
]);
|
||||
|
||||
}else{
|
||||
return redirect('/login')
|
||||
->withInput()
|
||||
->with([
|
||||
'message' => trans('Akun anda tidak ditemukan'),
|
||||
'type' => "error"
|
||||
]);
|
||||
}
|
||||
}else{
|
||||
return redirect('/login')
|
||||
->withInput()
|
||||
->with([
|
||||
'message' => trans('Akun anda tidak ditemukan'),
|
||||
'type' => "error"
|
||||
]);
|
||||
if ($user && Hash::check($credentials['password'], $user->password)) {
|
||||
Auth::attempt(['email' => $request->email, 'password' => $request->password]);
|
||||
|
||||
$session = [
|
||||
'username' => $user->username,
|
||||
'name' => $user->name,
|
||||
'email' => $user->email,
|
||||
'npsn' => @$user->sekolah->npsn,
|
||||
'ms_tingkat_sekolah_id' => @$user->sekolah->ms_tingkat_sekolah_id,
|
||||
'status_sekolah' => @$user->sekolah->status_sekolah,
|
||||
'alamat_sekolah' => @$user->sekolah->alamat_sekolah,
|
||||
'kontak_person' => @$user->sekolah->kontak_person,
|
||||
'telp' => @$user->sekolah->telp,
|
||||
'currYear' => date('Y'),
|
||||
'group_id' => @$user->ms_group_id,
|
||||
];
|
||||
session($session);
|
||||
|
||||
return redirect('dashboard')->with([
|
||||
'message' => trans('Selamat datang kembali'),
|
||||
'type' => "success"
|
||||
]);
|
||||
|
||||
}else{
|
||||
return redirect('/login')
|
||||
->withInput()
|
||||
->with([
|
||||
'message' => trans('Akun anda tidak ditemukan'),
|
||||
'type' => "error"
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function logout()
|
||||
|
|
|
@ -9,6 +9,7 @@ use Illuminate\Support\Facades\Auth;
|
|||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\User;
|
||||
use App\Models\Master\MasterGroupUser;
|
||||
use App\Models\ProfileSekolah as Profile;
|
||||
|
||||
class CustomRegisterController extends Controller
|
||||
|
@ -48,6 +49,7 @@ class CustomRegisterController extends Controller
|
|||
|
||||
$user = new User;
|
||||
$user->email = $request->email;
|
||||
$user->username = $request->npsn;
|
||||
$user->password = Hash::make($request->password);
|
||||
$user->name = $request->name;
|
||||
$user->save();
|
||||
|
@ -62,6 +64,11 @@ class CustomRegisterController extends Controller
|
|||
$profile->telp = $request->telp;
|
||||
$profile->save();
|
||||
|
||||
$group = new MasterGroupUser;
|
||||
$group->user_id = $user->id;
|
||||
$group->ms_group_id = 2; //sekolah
|
||||
$group->save();
|
||||
|
||||
return redirect('/login')->with([
|
||||
'message' => 'Berhasil membuat akun baru, silahkan login',
|
||||
'type' => 'success',
|
||||
|
|
|
@ -25,4 +25,10 @@ class HomeController extends Controller
|
|||
{
|
||||
return view('home');
|
||||
}
|
||||
|
||||
public function dashboard()
|
||||
{
|
||||
$data['title'] = 'Dashboard';
|
||||
return view('home',$data);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Management;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class RoleController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*/
|
||||
public function show(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function edit(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request, string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
|
@ -0,0 +1,65 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Management;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class UserController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*/
|
||||
public function show(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function edit(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request, string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
|
@ -0,0 +1,65 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Master;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class IndikatorController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*/
|
||||
public function show(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function edit(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request, string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
|
@ -0,0 +1,65 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Master;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class KomponenController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*/
|
||||
public function show(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*/
|
||||
public function edit(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request, string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
|
@ -11,8 +11,8 @@ class MasterGroup extends Model
|
|||
protected $table = 'ms_group';
|
||||
protected $primaryKey = 'MsGroupId';
|
||||
protected $fillable = [
|
||||
'menu_group',
|
||||
'menu_group_alias',
|
||||
'name',
|
||||
'alias',
|
||||
'status',
|
||||
'created_by',
|
||||
'updated_by',
|
||||
|
|
|
@ -13,6 +13,16 @@ class MasterGroupUser extends Model
|
|||
protected $fillable = [
|
||||
'ms_group_id',
|
||||
'user_id',
|
||||
]
|
||||
];
|
||||
|
||||
public function group()
|
||||
{
|
||||
return $this->belongsTo(MasterGroup::class, 'ms_group_id','MsGroupId');
|
||||
}
|
||||
|
||||
public function user()
|
||||
{
|
||||
return $this->belongsTo(\App\Models\User::class, 'user_id','id');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -23,4 +23,196 @@ class MasterMenu extends Model
|
|||
'created_by',
|
||||
'updated_by',
|
||||
];
|
||||
|
||||
public function submenu()
|
||||
{
|
||||
return $this->hasMany(MasterMenu::class,'parent_id','id');
|
||||
}
|
||||
|
||||
public static function coreMenus($type, array $status = [1]): mixed
|
||||
{
|
||||
return MasterMenu::where('parent_id', '=', 0)
|
||||
->where('menu_type', '=', $type)
|
||||
->whereIn('status', $status);
|
||||
}
|
||||
|
||||
public static function coreMenusByParent($id, array $status = [1]): mixed
|
||||
{
|
||||
return MasterMenu::where('parent_id', '=', $id)
|
||||
->whereIn('status', $status);
|
||||
}
|
||||
|
||||
public static function getMenuByParentPosition($id, $type, array $active = [1], int $year = null): mixed
|
||||
{
|
||||
if ($year) {
|
||||
$currYear = $year;
|
||||
} else {
|
||||
$currYear = date('Y');
|
||||
}
|
||||
|
||||
return MasterMenu::where('parent_id', '=', $id)
|
||||
->where('menu_type', '=', $type)
|
||||
->whereIn('status', $active)
|
||||
->union(MasterMenu::coreMenus($type, $active))
|
||||
->orderBy('ordering')
|
||||
->get();
|
||||
}
|
||||
|
||||
/**
|
||||
* @author alex.gz <amqit.consultant@gmail.com>
|
||||
* @created 08/12/2023 12:53
|
||||
*
|
||||
* @param $type
|
||||
* @param int|null $year
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public static function getParentByType($type, int $year = null): mixed
|
||||
{
|
||||
if ($year) {
|
||||
$currYear = $year;
|
||||
} else {
|
||||
$currYear = date('Y');
|
||||
}
|
||||
|
||||
return MasterMenu::where('parent_id', '=', 0)
|
||||
->where('menu_type', '=', $type)
|
||||
->union(MasterMenu::coreMenus($type))
|
||||
->orderBy('ordering')
|
||||
->get();
|
||||
}
|
||||
|
||||
/**
|
||||
* @author alex.gz <amqit.consultant@gmail.com>
|
||||
* @created 08/12/2023 18:07
|
||||
*
|
||||
* @param $type
|
||||
* @param int|null $year
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public static function getMenuByYear($type, int $year = null): mixed
|
||||
{
|
||||
if ($year) {
|
||||
$currYear = $year;
|
||||
} else {
|
||||
$currYear = date('Y');
|
||||
}
|
||||
|
||||
return MasterMenu::where('parent_id', '=', 0)
|
||||
->where('menu_type', '=', $type)
|
||||
->where('status', '=', true)
|
||||
->orderBy('ordering')
|
||||
->get();
|
||||
}
|
||||
|
||||
/**
|
||||
* @author alex.gz <amqit.consultant@gmail.com>
|
||||
* @created 08/12/2023 12:54
|
||||
*
|
||||
* @param $type
|
||||
* @param int|null $year
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public static function getParentByTypeStatus($type, int $year = null): mixed
|
||||
{
|
||||
if ($year) {
|
||||
$currYear = $year;
|
||||
} else {
|
||||
$currYear = date('Y');
|
||||
}
|
||||
|
||||
return MasterMenu::where('parent_id', '=', 0)
|
||||
->where('menu_type', '=', $type)
|
||||
->where('status', '=', true)
|
||||
->union(MasterMenu::coreMenus($type))
|
||||
->orderBy('ordering')
|
||||
->get();
|
||||
}
|
||||
|
||||
/**
|
||||
* @author alex.gz <amqit.consultant@gmail.com>
|
||||
* @created 08/12/2023 12:54
|
||||
*
|
||||
* @param $id
|
||||
* @param array $active
|
||||
* @param int|null $year
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public static function getMenuByParent($id, array $active = [1], int $year = null): mixed
|
||||
{
|
||||
if ($year) {
|
||||
$currYear = $year;
|
||||
} else {
|
||||
$currYear = date('Y');
|
||||
}
|
||||
|
||||
return MasterMenu::where('parent_id', '=', $id)
|
||||
->union(MasterMenu::coreMenusByParent($id, $active))
|
||||
->whereIn('status', $active)
|
||||
->orderBy('ordering')
|
||||
->get();
|
||||
}
|
||||
|
||||
/**
|
||||
* @author alex.gz <amqit.consultant@gmail.com>
|
||||
* @created 08/12/2023 14:54
|
||||
*
|
||||
* @param int $year
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public static function countMenuByYear(int $year): mixed
|
||||
{
|
||||
$model = MasterMenu::where('status', '=', true);
|
||||
return $model->count();
|
||||
}
|
||||
|
||||
/**
|
||||
* @author alex.gz <amqit.consultant@gmail.com>
|
||||
* @created 08/12/2023 12:55
|
||||
*
|
||||
* @param $id
|
||||
* @param int|null $year
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public static function getActiveById($id, int $year = null): mixed
|
||||
{
|
||||
if ($year) {
|
||||
$currYear = $year;
|
||||
} else {
|
||||
$currYear = date('Y');
|
||||
}
|
||||
|
||||
return MasterMenu::where('id', '=', $id)
|
||||
->where('status', '=', true)
|
||||
->first();
|
||||
}
|
||||
|
||||
/**
|
||||
* @author alex.gz <amqit.consultant@gmail.com>
|
||||
* @created 08/12/2023 12:55
|
||||
*
|
||||
* @param $type
|
||||
* @param int|null $year
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public static function getActiveByPosition($type, int $year = null): mixed
|
||||
{
|
||||
if ($year) {
|
||||
$currYear = $year;
|
||||
} else {
|
||||
$currYear = date('Y');
|
||||
}
|
||||
|
||||
return MasterMenu::where('menu_type', '=', $type)
|
||||
->where('status', '=', true)
|
||||
->union(MasterMenu::coreMenus($type))
|
||||
->orderBy('ordering')
|
||||
->get();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ class User extends Authenticatable
|
|||
// protected $primaryKey = 'user_id';
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'username',
|
||||
'email',
|
||||
'password',
|
||||
];
|
||||
|
@ -43,4 +44,9 @@ class User extends Authenticatable
|
|||
protected $casts = [
|
||||
'email_verified_at' => 'datetime',
|
||||
];
|
||||
|
||||
public function sekolah()
|
||||
{
|
||||
return $this->belongsTo(ProfileSekolah::class,'id','user_id');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,7 +31,10 @@
|
|||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Tests\\": "tests/"
|
||||
}
|
||||
},
|
||||
"files": [
|
||||
"app/Helpers/custom.php"
|
||||
]
|
||||
},
|
||||
"scripts": {
|
||||
"post-autoload-dump": [
|
||||
|
|
|
@ -14,6 +14,7 @@ return new class extends Migration
|
|||
Schema::create('users', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->string('name');
|
||||
$table->string('username');
|
||||
$table->string('email')->unique();
|
||||
$table->timestamp('email_verified_at')->nullable();
|
||||
$table->string('password');
|
||||
|
|
|
@ -13,8 +13,8 @@ return new class extends Migration
|
|||
{
|
||||
Schema::create('ms_group', function (Blueprint $table) {
|
||||
$table->id('MsGroupId');
|
||||
$table->string('menu_group', 50)->unique();
|
||||
$table->string('menu_group_alias', 50)->unique();
|
||||
$table->string('name', 50)->unique();
|
||||
$table->string('alias', 50)->unique();
|
||||
$table->boolean('status')->default(true)->comment('True/False');
|
||||
$table->foreignId('created_by')->default(0);
|
||||
$table->foreignId('updated_by')->default(0)->nullable();
|
||||
|
|
|
@ -15,6 +15,7 @@ return new class extends Migration
|
|||
$table->id('MsGroupUserId');
|
||||
$table->foreignId('ms_group_id')->comment('FK Group');
|
||||
$table->foreignId('user_id')->comment('FK User');
|
||||
$table->timestamps();
|
||||
|
||||
$table->foreign('user_id')->references('id')->on('users')->cascadeOnDelete();
|
||||
$table->foreign('ms_group_id')->references('MsGroupId')->on('ms_group')->cascadeOnDelete();
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->foreignId('ms_group_id')->comment('FK ms group');
|
||||
$table->foreign('ms_group_id')->references('MsGroupId')->on('ms_group')->cascadeOnDelete();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
//
|
||||
});
|
||||
}
|
||||
};
|
|
@ -6,6 +6,8 @@ namespace Database\Seeders;
|
|||
use Illuminate\Database\Seeder;
|
||||
use App\Models\User;
|
||||
use App\Models\Master\MasterTingkatSekolah;
|
||||
use App\Models\Master\MasterGroup;
|
||||
use App\Models\Master\MasterGroupUser;
|
||||
use Hash;
|
||||
|
||||
class DatabaseSeeder extends Seeder
|
||||
|
@ -15,15 +17,6 @@ class DatabaseSeeder extends Seeder
|
|||
*/
|
||||
public function run(): void
|
||||
{
|
||||
User::updateOrCreate([
|
||||
'name' => 'Administrator',
|
||||
'email' => 'adminadiwiyata@dlh.go.id',
|
||||
],[
|
||||
'name' => 'Administrator',
|
||||
'email' => 'adminadiwiyata@dlh.go.id',
|
||||
'password' => Hash::make('##SekolahAdiwiyata123'),
|
||||
]);
|
||||
|
||||
$data = [
|
||||
['name' => 'SD'],
|
||||
['name' => 'SMP'],
|
||||
|
@ -45,5 +38,49 @@ class DatabaseSeeder extends Seeder
|
|||
'name' => $val['name'],
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
$group = [
|
||||
['name' => 'Administrator','alias' => 'administrator'],
|
||||
['name' => 'Sekolah','alias'=> 'sekolah'],
|
||||
['name' => 'Satuan Pelaksana','alias' => 'satuan_pelaksana'],
|
||||
['name' => 'Suku Dinas', 'alias' => 'suku_dinas'],
|
||||
['name' => 'Dinas','alias' => 'dinas'],
|
||||
['name' => 'Penilai Kota','alias' => 'penilai_kota'],
|
||||
['name' => 'Penilai Provinsi','alias' => 'penilai_provinsi'],
|
||||
];
|
||||
|
||||
foreach($group as $valGroup){
|
||||
MasterGroup::updateOrCreate([
|
||||
'name' => $valGroup['name'],
|
||||
'alias' => $valGroup['alias'],
|
||||
],[
|
||||
'name' => $valGroup['name'],
|
||||
'alias' => $valGroup['alias'],
|
||||
'status' => 1,
|
||||
]);
|
||||
}
|
||||
|
||||
User::updateOrCreate([
|
||||
'name' => 'Administrator',
|
||||
'username' => 'administrator',
|
||||
'email' => 'adminadiwiyata@dlh.go.id',
|
||||
],[
|
||||
'name' => 'Administrator',
|
||||
'username' => 'administrator',
|
||||
'email' => 'adminadiwiyata@dlh.go.id',
|
||||
'password' => Hash::make('##SekolahAdiwiyata123'),
|
||||
]);
|
||||
|
||||
MasterGroupUser::updateOrCreate([
|
||||
'ms_group_id' => '1',
|
||||
'user_id' => '1',
|
||||
],[
|
||||
'ms_group_id' => '1',
|
||||
'user_id' => '1',
|
||||
]);
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
{{csrf_field()}}
|
||||
<div class="form-group">
|
||||
<label class="form-label">Email</label>
|
||||
<input type="email" id="email" required name="email" class="form-control" placeholder="Masukan Email anda" value="" required>
|
||||
<input type="text" required name="email" class="form-control" placeholder="Masukan Email/NPSN anda" value="" required>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label">Password</label>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
@extends('layouts.master')
|
||||
@section('title',$title)
|
||||
@section('page-css')
|
||||
<link rel="stylesheet" media="screen, print" href="{{asset('assets/css/datagrid/datatables/datatables.bundle.css')}}">
|
||||
@endsection
|
||||
|
|
|
@ -23,7 +23,12 @@
|
|||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
{!! renderMenu() !!}
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- <li>
|
||||
<a href="{{url('profile-sekolah')}}" title="Profile Sekolah" data-filter-tags="application intel">
|
||||
<i class="fal fa-building"></i>
|
||||
<span class="nav-link-text" data-i18n="nav.application_intel">Profile Sekolah</span>
|
||||
|
@ -119,7 +124,7 @@
|
|||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</li> -->
|
||||
</ul>
|
||||
<div class="filter-message js-filter-message bg-success-600"></div>
|
||||
</nav>
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use App\Http\Middleware\Session;
|
||||
use App\Http\Controllers\HomeController;
|
||||
use App\Http\Controllers\Master\IndikatorController;
|
||||
use App\Http\Controllers\Master\KomponenController;
|
||||
use App\Http\Controllers\Management\UserController;
|
||||
use App\Http\Controllers\Management\RoleController;
|
||||
|
||||
Route::get('dashboard',[HomeController::class,'dashboard'])->name('dashboard');
|
||||
|
||||
Route::get('/profile-sekolah', function () {
|
||||
return view('profile');
|
||||
});
|
||||
|
||||
Route::name('master.')->prefix('master')->group(function () {
|
||||
Route::resource('indikator',IndikatorController::class);
|
||||
Route::resource('komponen',KomponenController::class);
|
||||
});
|
||||
|
||||
Route::name('management.')->prefix('management')->group(function () {
|
||||
Route::resource('user',UserController::class);
|
||||
Route::resource('role',RoleController::class);
|
||||
});
|
|
@ -4,6 +4,7 @@ use Illuminate\Support\Facades\Route;
|
|||
use App\Http\Middleware\Session;
|
||||
use App\Http\Controllers\Auth\CustomLoginController;
|
||||
use App\Http\Controllers\Auth\CustomRegisterController;
|
||||
use App\Http\Controllers\HomeController;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
@ -22,13 +23,8 @@ Route::get('register',[CustomRegisterController::class,'index'])->name('register
|
|||
Route::post('register',[CustomRegisterController::class,'post_register'])->name('post_register');
|
||||
|
||||
Route::middleware(Session::class)->name('modules.')->group(function () {
|
||||
Route::get('/dashboard', function () {
|
||||
return view('home');
|
||||
});
|
||||
|
||||
Route::get('/profile-sekolah', function () {
|
||||
return view('profile');
|
||||
});
|
||||
include_route_files(__DIR__ . '/modules');
|
||||
|
||||
Route::get('logout',[CustomLoginController::class,'logout'])->name('logout');
|
||||
});
|
||||
|
|
|
@ -8,17 +8,33 @@ $baseDir = dirname($vendorDir);
|
|||
return array(
|
||||
'App\\Console\\Kernel' => $baseDir . '/app/Console/Kernel.php',
|
||||
'App\\Exceptions\\Handler' => $baseDir . '/app/Exceptions/Handler.php',
|
||||
'App\\Http\\Controllers\\Auth\\ConfirmPasswordController' => $baseDir . '/app/Http/Controllers/Auth/ConfirmPasswordController.php',
|
||||
'App\\Http\\Controllers\\Auth\\CustomLoginController' => $baseDir . '/app/Http/Controllers/Auth/CustomLoginController.php',
|
||||
'App\\Http\\Controllers\\Auth\\CustomRegisterController' => $baseDir . '/app/Http/Controllers/Auth/CustomRegisterController.php',
|
||||
'App\\Http\\Controllers\\Auth\\ForgotPasswordController' => $baseDir . '/app/Http/Controllers/Auth/ForgotPasswordController.php',
|
||||
'App\\Http\\Controllers\\Auth\\LoginController' => $baseDir . '/app/Http/Controllers/Auth/LoginController.php',
|
||||
'App\\Http\\Controllers\\Auth\\RegisterController' => $baseDir . '/app/Http/Controllers/Auth/RegisterController.php',
|
||||
'App\\Http\\Controllers\\Auth\\ResetPasswordController' => $baseDir . '/app/Http/Controllers/Auth/ResetPasswordController.php',
|
||||
'App\\Http\\Controllers\\Auth\\VerificationController' => $baseDir . '/app/Http/Controllers/Auth/VerificationController.php',
|
||||
'App\\Http\\Controllers\\Controller' => $baseDir . '/app/Http/Controllers/Controller.php',
|
||||
'App\\Http\\Controllers\\HomeController' => $baseDir . '/app/Http/Controllers/HomeController.php',
|
||||
'App\\Http\\Kernel' => $baseDir . '/app/Http/Kernel.php',
|
||||
'App\\Http\\Middleware\\Authenticate' => $baseDir . '/app/Http/Middleware/Authenticate.php',
|
||||
'App\\Http\\Middleware\\EncryptCookies' => $baseDir . '/app/Http/Middleware/EncryptCookies.php',
|
||||
'App\\Http\\Middleware\\PreventRequestsDuringMaintenance' => $baseDir . '/app/Http/Middleware/PreventRequestsDuringMaintenance.php',
|
||||
'App\\Http\\Middleware\\RedirectIfAuthenticated' => $baseDir . '/app/Http/Middleware/RedirectIfAuthenticated.php',
|
||||
'App\\Http\\Middleware\\Session' => $baseDir . '/app/Http/Middleware/Session.php',
|
||||
'App\\Http\\Middleware\\TrimStrings' => $baseDir . '/app/Http/Middleware/TrimStrings.php',
|
||||
'App\\Http\\Middleware\\TrustHosts' => $baseDir . '/app/Http/Middleware/TrustHosts.php',
|
||||
'App\\Http\\Middleware\\TrustProxies' => $baseDir . '/app/Http/Middleware/TrustProxies.php',
|
||||
'App\\Http\\Middleware\\ValidateSignature' => $baseDir . '/app/Http/Middleware/ValidateSignature.php',
|
||||
'App\\Http\\Middleware\\VerifyCsrfToken' => $baseDir . '/app/Http/Middleware/VerifyCsrfToken.php',
|
||||
'App\\Models\\Master\\MasterAccessMenu' => $baseDir . '/app/Models/Master/MasterAccessMenu.php',
|
||||
'App\\Models\\Master\\MasterGroup' => $baseDir . '/app/Models/Master/MasterGroup.php',
|
||||
'App\\Models\\Master\\MasterGroupUser' => $baseDir . '/app/Models/Master/MasterGroupUser.php',
|
||||
'App\\Models\\Master\\MasterMenu' => $baseDir . '/app/Models/Master/MasterMenu.php',
|
||||
'App\\Models\\Master\\MasterTingkatSekolah' => $baseDir . '/app/Models/Master/MasterTingkatSekolah.php',
|
||||
'App\\Models\\ProfileSekolah' => $baseDir . '/app/Models/ProfileSekolah.php',
|
||||
'App\\Models\\User' => $baseDir . '/app/Models/User.php',
|
||||
'App\\Providers\\AppServiceProvider' => $baseDir . '/app/Providers/AppServiceProvider.php',
|
||||
'App\\Providers\\AuthServiceProvider' => $baseDir . '/app/Providers/AuthServiceProvider.php',
|
||||
|
|
|
@ -36,4 +36,5 @@ return array(
|
|||
'a1cfe24d14977df6878b9bf804af2d1c' => $vendorDir . '/nunomaduro/collision/src/Adapters/Phpunit/Autoload.php',
|
||||
'ec07570ca5a812141189b1fa81503674' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert/Functions.php',
|
||||
'320163ac6b93aebe3dc25b60a0533d56' => $vendorDir . '/spatie/laravel-ignition/src/helpers.php',
|
||||
'1f5ae5081321c27c162bfd9b271e5cae' => $baseDir . '/app/Helpers/custom.php',
|
||||
);
|
||||
|
|
|
@ -37,6 +37,7 @@ class ComposerStaticInitbfe12996eeecb6fdc8713a9fd9d431f8
|
|||
'a1cfe24d14977df6878b9bf804af2d1c' => __DIR__ . '/..' . '/nunomaduro/collision/src/Adapters/Phpunit/Autoload.php',
|
||||
'ec07570ca5a812141189b1fa81503674' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert/Functions.php',
|
||||
'320163ac6b93aebe3dc25b60a0533d56' => __DIR__ . '/..' . '/spatie/laravel-ignition/src/helpers.php',
|
||||
'1f5ae5081321c27c162bfd9b271e5cae' => __DIR__ . '/../..' . '/app/Helpers/custom.php',
|
||||
);
|
||||
|
||||
public static $prefixLengthsPsr4 = array (
|
||||
|
@ -542,17 +543,33 @@ class ComposerStaticInitbfe12996eeecb6fdc8713a9fd9d431f8
|
|||
public static $classMap = array (
|
||||
'App\\Console\\Kernel' => __DIR__ . '/../..' . '/app/Console/Kernel.php',
|
||||
'App\\Exceptions\\Handler' => __DIR__ . '/../..' . '/app/Exceptions/Handler.php',
|
||||
'App\\Http\\Controllers\\Auth\\ConfirmPasswordController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/ConfirmPasswordController.php',
|
||||
'App\\Http\\Controllers\\Auth\\CustomLoginController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/CustomLoginController.php',
|
||||
'App\\Http\\Controllers\\Auth\\CustomRegisterController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/CustomRegisterController.php',
|
||||
'App\\Http\\Controllers\\Auth\\ForgotPasswordController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/ForgotPasswordController.php',
|
||||
'App\\Http\\Controllers\\Auth\\LoginController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/LoginController.php',
|
||||
'App\\Http\\Controllers\\Auth\\RegisterController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/RegisterController.php',
|
||||
'App\\Http\\Controllers\\Auth\\ResetPasswordController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/ResetPasswordController.php',
|
||||
'App\\Http\\Controllers\\Auth\\VerificationController' => __DIR__ . '/../..' . '/app/Http/Controllers/Auth/VerificationController.php',
|
||||
'App\\Http\\Controllers\\Controller' => __DIR__ . '/../..' . '/app/Http/Controllers/Controller.php',
|
||||
'App\\Http\\Controllers\\HomeController' => __DIR__ . '/../..' . '/app/Http/Controllers/HomeController.php',
|
||||
'App\\Http\\Kernel' => __DIR__ . '/../..' . '/app/Http/Kernel.php',
|
||||
'App\\Http\\Middleware\\Authenticate' => __DIR__ . '/../..' . '/app/Http/Middleware/Authenticate.php',
|
||||
'App\\Http\\Middleware\\EncryptCookies' => __DIR__ . '/../..' . '/app/Http/Middleware/EncryptCookies.php',
|
||||
'App\\Http\\Middleware\\PreventRequestsDuringMaintenance' => __DIR__ . '/../..' . '/app/Http/Middleware/PreventRequestsDuringMaintenance.php',
|
||||
'App\\Http\\Middleware\\RedirectIfAuthenticated' => __DIR__ . '/../..' . '/app/Http/Middleware/RedirectIfAuthenticated.php',
|
||||
'App\\Http\\Middleware\\Session' => __DIR__ . '/../..' . '/app/Http/Middleware/Session.php',
|
||||
'App\\Http\\Middleware\\TrimStrings' => __DIR__ . '/../..' . '/app/Http/Middleware/TrimStrings.php',
|
||||
'App\\Http\\Middleware\\TrustHosts' => __DIR__ . '/../..' . '/app/Http/Middleware/TrustHosts.php',
|
||||
'App\\Http\\Middleware\\TrustProxies' => __DIR__ . '/../..' . '/app/Http/Middleware/TrustProxies.php',
|
||||
'App\\Http\\Middleware\\ValidateSignature' => __DIR__ . '/../..' . '/app/Http/Middleware/ValidateSignature.php',
|
||||
'App\\Http\\Middleware\\VerifyCsrfToken' => __DIR__ . '/../..' . '/app/Http/Middleware/VerifyCsrfToken.php',
|
||||
'App\\Models\\Master\\MasterAccessMenu' => __DIR__ . '/../..' . '/app/Models/Master/MasterAccessMenu.php',
|
||||
'App\\Models\\Master\\MasterGroup' => __DIR__ . '/../..' . '/app/Models/Master/MasterGroup.php',
|
||||
'App\\Models\\Master\\MasterGroupUser' => __DIR__ . '/../..' . '/app/Models/Master/MasterGroupUser.php',
|
||||
'App\\Models\\Master\\MasterMenu' => __DIR__ . '/../..' . '/app/Models/Master/MasterMenu.php',
|
||||
'App\\Models\\Master\\MasterTingkatSekolah' => __DIR__ . '/../..' . '/app/Models/Master/MasterTingkatSekolah.php',
|
||||
'App\\Models\\ProfileSekolah' => __DIR__ . '/../..' . '/app/Models/ProfileSekolah.php',
|
||||
'App\\Models\\User' => __DIR__ . '/../..' . '/app/Models/User.php',
|
||||
'App\\Providers\\AppServiceProvider' => __DIR__ . '/../..' . '/app/Providers/AppServiceProvider.php',
|
||||
'App\\Providers\\AuthServiceProvider' => __DIR__ . '/../..' . '/app/Providers/AuthServiceProvider.php',
|
||||
|
|
Loading…
Reference in New Issue