57 lines
1.4 KiB
PHP
57 lines
1.4 KiB
PHP
<?php
|
|
/**
|
|
* Created by Pensare Software.
|
|
* User: Theo Weijmer
|
|
* Date: 21/12/2017
|
|
* Time: 18:05
|
|
*/
|
|
|
|
use \Illuminate\Database\Eloquent\Model as Eloquent;
|
|
|
|
class Page extends Eloquent {
|
|
|
|
protected $table = "pages";
|
|
|
|
public function subpages()
|
|
{
|
|
return $this->hasMany( 'Page' );
|
|
}
|
|
|
|
|
|
public static function getPages( $user )
|
|
{
|
|
$pages = Page::whereRaw( 'id = page_id' )
|
|
->with( [
|
|
'subpages' => function ( $q ) use ( $user ) {
|
|
$q->whereRaw(
|
|
"id != page_id AND ((SELECT {$user->role} & pagelevel) != 0 OR pagelevel = 0)" )
|
|
->orderBy( 'pageorder' );
|
|
}] )
|
|
->orderBy( 'pageorder' )
|
|
->get();
|
|
|
|
return $pages;
|
|
}
|
|
|
|
public static function getAppPages( $user )
|
|
{
|
|
$appPages = Page::select( 'id', 'pageurl' )
|
|
->whereAppPage( 'T' )
|
|
->whereRaw(
|
|
"((SELECT {$user->role} & pagelevel) != 0 OR pagelevel = 0)" )
|
|
->get();
|
|
|
|
return $appPages;
|
|
}
|
|
|
|
public static function getPageAccessByRoleLevel( $roleLevel )
|
|
{
|
|
self::selectRaw( "
|
|
IF(id = page_id, 'MAIN', 'SUB') AS typepage,
|
|
IF((SELECT {$roleLevel} & pagelevel ) = 0, 'F', 'T') AS pageaccess" )
|
|
->orderByRaw( "id, IF(id = page_id, 0, 1)" )
|
|
->get();
|
|
}
|
|
|
|
|
|
} |