|
Server : LiteSpeed System : Linux barito.iixcp.rumahweb.net 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64 User : elvh3918 ( 1528) PHP Version : 8.2.31 Disable Function : mail Directory : /home/elvh3918/www/pmm/database/migrations/ |
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\DB;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
$project = config('app.project_app');
DB::unprepared('DROP PROCEDURE IF EXISTS sp_permission_by_role_view;');
DB::unprepared("CREATE PROCEDURE sp_permission_by_role_view (IN spRole VARCHAR(25))
BEGIN
SELECT
C.project, C.module, C.unit, C.program,
MAX(CASE
WHEN C.permission = 'view' THEN C.id
ELSE CASE
WHEN C.permission = 'admin' THEN C.id
ELSE 0
END
END) AS 'view',
MAX(CASE
WHEN C.permission = 'create' THEN C.id
ELSE 0
END) AS 'create',
MAX(CASE
WHEN C.permission = 'edit' THEN C.id
ELSE 0
END) AS 'edit',
MAX(CASE
WHEN C.permission = 'delete' THEN C.id
ELSE 0
END) AS 'delete',
MAX(CASE
WHEN C.permission = 'print' THEN C.id
ELSE 0
END) AS 'print',
MAX(C.is_active) AS is_active
FROM
vw_roles AS A
INNER JOIN
role_has_permissions AS B ON A.role_id = B.role_id
INNER JOIN
vw_permissions AS C ON B.permission_id = C.id
WHERE C.project IN ('admin', $project) AND A.role_id IN (spRole)
GROUP BY C.project, C.module, C.unit, C.program
ORDER BY C.project, C.module, C.unit, C.program
;
END");
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('sp_permission_by_role_view');
}
};