Magic query arguments:

- In addition to current_contact_id, the following arguments can be used in any OQL query (provided that the page running the query requires a  login): current_contact->attcode and current_user->attcode
- Code refactoring: magic arguments in one single place
- The "Run queries" page is now taking into account those magic arguments (do not prompt the end-user with these arguments!)

SVN:trunk[3912]
This commit is contained in:
Romain Quetiez
2016-02-17 18:55:46 +00:00
parent 77f8129fac
commit e0fad5e0e6
5 changed files with 118 additions and 68 deletions

View File

@@ -1,5 +1,5 @@
<?php
// Copyright (C) 2010-2015 Combodo SARL
// Copyright (C) 2010-2016 Combodo SARL
//
// This file is part of iTop.
//
@@ -20,7 +20,7 @@
/**
* User rights management API
*
* @copyright Copyright (C) 2010-2015 Combodo SARL
* @copyright Copyright (C) 2010-2016 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
@@ -235,6 +235,23 @@ abstract class User extends cmdbAbstractObject
return $this->Get('login');
}
protected $oContactObject;
/**
* Fetch and memoize the associated contact (if any)
*/
public function GetContactObject()
{
if (is_null($this->oContactObject))
{
if ($this->Get('contactid') != 0)
{
$this->oContactObject = MetaModel::GetObject('Contact', $this->Get('contactid'));
}
}
return $this->oContactObject;
}
/*
* Overload the standard behavior
*/
@@ -752,6 +769,18 @@ class UserRights
return $oUser->Get('contactid');
}
public static function GetContactObject()
{
if (is_null(self::$m_oUser))
{
return null;
}
else
{
return self::$m_oUser->GetContactObject();
}
}
// Render the user name in best effort mode
public static function GetUserFriendlyName($sName = '')
{