63 $this->Database =
get_package(
'database' ,
'last' , __FILE__ );
64 $this->Link =
get_package(
'link' ,
'last' , __FILE__ );
65 $this->PermitAccess =
get_package(
'permit::permit_access' ,
'last' , __FILE__ );
66 $this->Security =
get_package(
'security' ,
'last' , __FILE__ );
67 $this->UserAlgorithms =
get_package(
'user::user_algorithms' ,
'last' , __FILE__ );
106 private function get_permits_for_user( $Object , $AddGroupPermits =
true )
110 $SessionId = $this->UserAlgorithms->get_id();
111 $Object = ( $Object === false ) ? $SessionId : $this->Security->get( $Object ,
'integer' );
112 $Permits = $this->PermitAccess->get_permits_for_object( $Object ,
'user' , array(
'public' ) );
114 if( $AddGroupPermits )
116 $Permits = array_merge(
117 $Permits , $this->PermitAccess->get_permits_for_user_group( $Object )
123 catch( Exception $e )
168 switch( $ObjectType )
171 $Permits = $this->PermitAccess->get_permits_for_object( $Object ,
'group' , array() );
174 $Permits = $this->PermitAccess->get_permits_for_object( $Object ,
'menu' , array(
'admin' ) );
176 case(
'page' ):$Permits = $this->PermitAccess->get_permits_for_page( $Object );
break;
177 case(
'user' ):$Permits = $this->get_permits_for_user( $Object , $AddGroupPermits );
break;
182 catch( Exception $e )
227 $Key = md5( $Object.$ObjectType.$AddGroupPermits );
229 if( isset( $this->PermitAccess->PermitsCache[ $Key ] ) )
231 return( $this->PermitAccess->PermitsCache[ $Key ] );
236 $this->PermitAccess->PermitsCache[ $Key ] = $Permits;
238 return( $this->PermitAccess->PermitsCache[ $Key ] );
240 catch( Exception $e )
280 if( $Object ===
false && $ObjectType ==
'user' )
282 $Object = $this->UserAlgorithms->get_id();
287 return(
in_array( $Permit , $ObjectsPermits ) );
289 catch( Exception $e )
331 if( is_array( $Permits ) ===
false )
333 $Permits = explode(
"," , $Permits );
336 if( count( $Permits ) === count( array_intersect( $ObjectsPermits , $Permits ) ) )
345 catch( Exception $e )
393 if( count( $Permits2 ) === count( array_intersect( $Permits1 , $Permits2 ) ) )
402 catch( Exception $e )
434 $PermitName = $this->Security->get( $PermitName ,
'command' );
436 $PermitObject = $this->PermitAccess->get_permit_by_name( $PermitName );
438 $Links1 = $this->Link->get_links(
false ,
get_field( $PermitObject ,
'id' ) ,
'user' ,
'permit' );
439 $Links2 = $this->Link->get_links(
false ,
get_field( $PermitObject ,
'id' ) ,
'group' ,
'permit' );
440 $Links3 = $this->Link->get_links(
false ,
get_field_ex( $Links2 ,
'object1_id' ) ,
'user' ,
'group' );
443 $Users = array_unique( $Users );
447 catch( Exception $e )