Files
dbois/application/models/eloquent/Page.php
T
2018-07-29 10:11:02 +02:00

62 lines
1.6 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 BaseModel {
protected $table = "pages";
public function subpages()
{
return $this->hasMany( 'Page' );
}
public static function getPages( $user )
{
$pages = Page::whereRaw( "id = page_id AND ((SELECT {$user->role} & pagelevel) != 0 OR pagelevel = 0)" )
->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 )
{
$rolePages = self::selectRaw( "
id,
{$roleLevel} AS rolelevel,
IF(id = page_id, 'MAIN', 'SUB') AS typepage,
pagename,
IF((SELECT {$roleLevel} & pagelevel ) = 0, 'F', 'T') AS pageaccess" )
->orderByRaw( "page_id, IF(id = page_id, 0, 1)" )
->get();
return $rolePages;
}
}