escape($_GET['api_key'])."'"; if ($db->query($sql)) { if ($db->num_rows($result)) { $obj = $db->fetch_object($result); $login = $obj->login; $stored_key = $obj->api_key; } } else { throw new RestException(503, 'Error when fetching user api_key :'.$db->error_msg); } if ( $stored_key != $_GET['api_key']) { $userClass::setCacheIdentifier($_GET['api_key']); return false; } $fuser = new User($db); if(! $fuser->fetch('',$login)) { throw new RestException(503, 'Error when fetching user :'.$fuser->error); } $fuser->getrights(); static::$user = $fuser; if($fuser->societe_id) static::$role = 'external'; if($fuser->admin) static::$role = 'admin'; } else { return false; } $userClass::setCacheIdentifier(static::$role); Resources::$accessControlFunction = 'DolibarrApiAccess::verifyAccess'; return in_array(static::$role, (array) static::$requires) || static::$role == 'admin'; } public function __getWWWAuthenticateString() { return ''; } /** * @access private */ public static function verifyAccess(array $m) { $requires = isset($m['class']['DolibarrApiAccess']['properties']['requires']) ? $m['class']['DolibarrApiAccess']['properties']['requires'] : false; return $requires ? static::$role == 'admin' || in_array(static::$role, (array) $requires) : true; } }