60 lines
1.3 KiB
PHP
60 lines
1.3 KiB
PHP
<?php
|
|
/**
|
|
* Created by Pensare Software.
|
|
* User: Theo Weijmer
|
|
* Date: 25/12/2017
|
|
* Time: 17:07
|
|
*/
|
|
|
|
class Role extends BaseModel {
|
|
|
|
protected $table = "roles";
|
|
|
|
public function user()
|
|
{
|
|
return $this->hasOne( 'User', 'role', 'rolelevel' );
|
|
}
|
|
|
|
public static function getAllRoles( $archive )
|
|
{
|
|
$roleHierarchy = Role::getUserroleHierachy();
|
|
|
|
$roles = Role::orderBy( 'rolehierarchy' )
|
|
->where( 'rolehierarchy', '>=', $roleHierarchy );
|
|
|
|
if ( $archive == 'F' ) $roles = $roles->whereArchive( 'F' );
|
|
|
|
$roles = $roles->get();
|
|
|
|
return $roles;
|
|
}
|
|
|
|
public static function getUserroleHierachy()
|
|
{
|
|
$userrole = User::getUserRoleHierarchy();
|
|
|
|
if( $userrole == 0 ) return 0;
|
|
|
|
$roleHierarchy = Role::whereRolelevel($userrole)
|
|
->first()
|
|
->rolehierarchy;
|
|
|
|
return $roleHierarchy;
|
|
}
|
|
|
|
public static function getPagesAccessByRole()
|
|
{
|
|
$roles = self::all();
|
|
|
|
foreach ( $roles as $role )
|
|
{
|
|
$pageroles[ $role->id ]['rolelevel'] = $role->rolelevel;
|
|
$pageroles[ $role->id ]['rolename'] = $role->rolename;
|
|
|
|
$pageroles[ $role->id ]['pagesAccess'] =
|
|
Page::getPageAccessByRoleLevel( $role->rolelevel );
|
|
}
|
|
}
|
|
|
|
|
|
} |