Joomla Platform  13.1
Documentation des API du framework Joomla Platform
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
Référence de la classe JUser
+ Graphe d'héritage de JUser:
+ Graphe de collaboration de JUser:

Liste de tous les membres

Fonctions membres publiques

 __construct ($identifier=0)
 getParam ($key, $default=null)
 setParam ($key, $value)
 defParam ($key, $value)
 authorise ($action, $assetname=null)
 getAuthorisedCategories ($component, $action)
 getAuthorisedViewLevels ()
 getAuthorisedGroups ()
 setLastVisit ($timestamp=null)
 getParameters ()
 setParameters ($params)
 bind (&$array)
 save ($updateOnly=false)
 delete ()
 load ($id)
- Fonctions membres publiques inherited from JObject
 __toString ()
 def ($property, $default=null)
 get ($property, $default=null)
 getProperties ($public=true)
 getError ($i=null, $toString=true)
 getErrors ()
 set ($property, $value=null)
 setProperties ($properties)
 setError ($error)

Fonctions membres publiques statiques

static getInstance ($identifier=0)
static getTable ($type=null, $prefix= 'JTable')

Attributs publics

 $id = null
 $name = null
 $username = null
 $email = null
 $password = null
 $password_clear = ''
 $block = null
 $sendEmail = null
 $registerDate = null
 $lastvisitDate = null
 $activation = null
 $params = null
 $groups = array()
 $guest = null
 $lastResetTime = null
 $resetCount = null

Attributs protégés

 $isRoot = null
 $_params = null
 $_authGroups = null
 $_authLevels = null
 $_authActions = null
 $_errorMsg = null
- Attributs protégés inherited from JObject
 $_errors = array()

Attributs protégés statiques

static $instances = array()

Description détaillée

Définition à la ligne 19 du fichier user.php.


Documentation des constructeurs et destructeur

JUser::__construct (   $identifier = 0)

Constructor activating the default information of the language

Paramètres:
integer$identifierThe primary key of the user to load (optional).
Depuis:
11.1

Réimplémentée à partir de JObject.

Définition à la ligne 210 du fichier user.php.

{
// Create the user parameters object
$this->_params = new JRegistry;
// Load the user if it exists
if (!empty($identifier))
{
$this->load($identifier);
}
else
{
// Initialise
$this->id = 0;
$this->sendEmail = 0;
$this->aid = 0;
$this->guest = 1;
}
}

Documentation des fonctions membres

JUser::authorise (   $action,
  $assetname = null 
)

Method to check JUser object authorisation against an access control object and optionally an access extension object

Paramètres:
string$actionThe name of the action to check for permission.
string$assetnameThe name of the asset on which to perform the action.
Renvoie:
boolean True if authorised
Depuis:
11.1

Définition à la ligne 330 du fichier user.php.

Références JAccess\check(), JAccess\getAssetRules(), et JFactory\getConfig().

{
// Make sure we only check for core.admin once during the run.
if ($this->isRoot === null)
{
$this->isRoot = false;
// Check for the configuration file failsafe.
$config = JFactory::getConfig();
$rootUser = $config->get('root_user');
// The root_user variable can be a numeric user ID or a username.
if (is_numeric($rootUser) && $this->id > 0 && $this->id == $rootUser)
{
$this->isRoot = true;
}
elseif ($this->username && $this->username == $rootUser)
{
$this->isRoot = true;
}
else
{
// Get all groups against which the user is mapped.
$identities = $this->getAuthorisedGroups();
array_unshift($identities, $this->id * -1);
if (JAccess::getAssetRules(1)->allow('core.admin', $identities))
{
$this->isRoot = true;
return true;
}
}
}
return $this->isRoot ? true : JAccess::check($this->id, $action, $assetname);
}

+ Voici le graphe d'appel pour cette fonction :

JUser::bind ( $array)

Method to bind an associative array of data to a user object

Paramètres:
array&$arrayThe associative array to bind to the object
Renvoie:
boolean True on success
Depuis:
11.1

Définition à la ligne 545 du fichier user.php.

Références JText\_(), JUserHelper\genRandomPassword(), JFactory\getApplication(), JUserHelper\getCryptedPassword(), JFactory\getDate(), et JArrayHelper\getValue().

{
// The Joomla user plugin allows you to use weaker passwords if necessary.
$joomlaPluginEnabled = JPluginHelper::isEnabled('user', 'joomla');
if ($joomlaPluginEnabled)
{
$userPlugin = JPluginHelper::getPlugin('user', 'joomla');
$userPluginParams = new JRegistry($userPlugin->params);
JPluginHelper::importPlugin('user', 'joomla');
$defaultEncryption = PlgUserJoomla::setDefaultEncryption($userPluginParams);
}
else
{
$defaultEncryption = 'bcrypt';
}
// Let's check to see if the user is new or not
if (empty($this->id))
{
// Check the password and create the crypted password
if (empty($array['password']))
{
$array['password'] = JUserHelper::genRandomPassword();
$array['password2'] = $array['password'];
}
// Not all controllers check the password, although they should.
// Hence this code is required:
if (isset($array['password2']) && $array['password'] != $array['password2'])
{
JFactory::getApplication()->enqueueMessage(JText::_('JLIB_USER_ERROR_PASSWORD_NOT_MATCH'), 'error');
return false;
}
$this->password_clear = JArrayHelper::getValue($array, 'password', '', 'string');
$crypt = JUserHelper::getCryptedPassword($array['password'], $salt, $defaultEncryption);
$array['password'] = $crypt;
// Set the registration timestamp
$this->set('registerDate', JFactory::getDate()->toSql());
// Check that username is not greater than 150 characters
$username = $this->get('username');
if (strlen($username) > 150)
{
$username = substr($username, 0, 150);
$this->set('username', $username);
}
// Use a limit to prevent abuse since it is unfiltered
// The maximum password length for bcrypt is 55 characters.
$password = $this->get('password');
if (strlen($password) > 55)
{
$password = substr($password, 0, 55);
$this->set('password', $password);
JFactory::getApplication()->enqueueMessage(JText::_('JLIB_USER_ERROR_PASSWORD_TRUNCATED'), 'notice');
}
}
else
{
// Updating an existing user
if (!empty($array['password']))
{
if ($array['password'] != $array['password2'])
{
$this->setError(JText::_('JLIB_USER_ERROR_PASSWORD_NOT_MATCH'));
return false;
}
$this->password_clear = JArrayHelper::getValue($array, 'password', '', 'string');
$crypt = JUserHelper::getCryptedPassword($array['password'], $salt, $defaultEncryption);
$array['password'] = $crypt . ':' . $salt;
}
else
{
$array['password'] = $this->password;
}
}
if (array_key_exists('params', $array))
{
$this->_params->loadArray($array['params']);
if (is_array($array['params']))
{
$params = (string) $this->_params;
}
else
{
$params = $array['params'];
}
$this->params = $params;
}
// Bind the array
if (!$this->setProperties($array))
{
$this->setError(JText::_('JLIB_USER_ERROR_BIND_ARRAY'));
return false;
}
// Make sure its an integer
$this->id = (int) $this->id;
return true;
}

+ Voici le graphe d'appel pour cette fonction :

JUser::defParam (   $key,
  $value 
)

Method to set a default parameter if it does not exist

Paramètres:
string$keyParameter key
mixed$valueParameter value
Renvoie:
mixed Set parameter value
Depuis:
11.1

Définition à la ligne 314 du fichier user.php.

{
return $this->_params->def($key, $value);
}
JUser::delete ( )

Method to delete the JUser object from the database

Renvoie:
boolean True on success
Depuis:
11.1

Définition à la ligne 808 du fichier user.php.

Références JEventDispatcher\getInstance().

{
JPluginHelper::importPlugin('user');
// Trigger the onUserBeforeDelete event
$dispatcher->trigger('onUserBeforeDelete', array($this->getProperties()));
// Create the user table object
$table = $this->getTable();
if (!$result = $table->delete($this->id))
{
$this->setError($table->getError());
}
// Trigger the onUserAfterDelete event
$dispatcher->trigger('onUserAfterDelete', array($this->getProperties(), $result, $this->getError()));
return $result;
}

+ Voici le graphe d'appel pour cette fonction :

JUser::getAuthorisedCategories (   $component,
  $action 
)

Method to return a list of all categories that a user has permission for a given action

Paramètres:
string$componentThe component from which to retrieve the categories
string$actionThe name of the section within the component from which to retrieve the actions.
Renvoie:
array List of categories that this group can do this action to (empty array if none). Categories must be published.
Depuis:
11.1

Définition à la ligne 378 du fichier user.php.

Références JFactory\getDbo().

{
// Brute force method: get all published category rows for the component and check each one
// TODO: Modify the way permissions are stored in the db to allow for faster implementation and better scaling
$query = $db->getQuery(true)
->select('c.id AS id, a.name AS asset_name')
->from('#__categories AS c')
->join('INNER', '#__assets AS a ON c.asset_id = a.id')
->where('c.extension = ' . $db->quote($component))
->where('c.published = 1');
$db->setQuery($query);
$allCategories = $db->loadObjectList('id');
$allowedCategories = array();
foreach ($allCategories as $category)
{
if ($this->authorise($action, $category->asset_name))
{
$allowedCategories[] = (int) $category->id;
}
}
return $allowedCategories;
}

+ Voici le graphe d'appel pour cette fonction :

JUser::getAuthorisedGroups ( )

Gets an array of the authorised user groups

Renvoie:
array
Depuis:
11.1

Définition à la ligne 433 du fichier user.php.

Références JAccess\getGroupsByUser().

{
if ($this->_authGroups === null)
{
$this->_authGroups = array();
}
if (empty($this->_authGroups))
{
$this->_authGroups = JAccess::getGroupsByUser($this->id);
}
}

+ Voici le graphe d'appel pour cette fonction :

JUser::getAuthorisedViewLevels ( )

Gets an array of the authorised access levels for the user

Renvoie:
array
Depuis:
11.1

Définition à la ligne 411 du fichier user.php.

Références JAccess\getAuthorisedViewLevels().

{
if ($this->_authLevels === null)
{
$this->_authLevels = array();
}
if (empty($this->_authLevels))
{
$this->_authLevels = JAccess::getAuthorisedViewLevels($this->id);
}
}

+ Voici le graphe d'appel pour cette fonction :

static JUser::getInstance (   $identifier = 0)
static

Returns the global User object, only creating it if it doesn't already exist.

Paramètres:
integer$identifierThe user to load - Can be an integer or string - If string, it is converted to ID automatically.
Renvoie:
JUser The User object.
Depuis:
11.1

Définition à la ligne 240 du fichier user.php.

Références JLog\add(), JUserHelper\getUserId(), JText\sprintf(), et JLog\WARNING.

Référencé par JUserHelper\activateUser(), JFactory\getUser(), JUserHelper\getUserGroups(), JUserHelper\removeUserFromGroup(), et JUserHelper\setUserGroups().

{
// Find the user id
if (!is_numeric($identifier))
{
if (!$id = JUserHelper::getUserId($identifier))
{
JLog::add(JText::sprintf('JLIB_USER_ERROR_ID_NOT_EXISTS', $identifier), JLog::WARNING, 'jerror');
return false;
}
}
else
{
$id = $identifier;
}
// If the $id is zero, just return an empty JUser.
// Note: don't cache this user because it'll have a new ID on save!
if ($id === 0)
{
return new JUser;
}
// Check if the user ID is already cached.
if (empty(self::$instances[$id]))
{
$user = new JUser($id);
self::$instances[$id] = $user;
}
return self::$instances[$id];
}

+ Voici le graphe d'appel pour cette fonction :

+ Voici le graphe des appelants de cette fonction :

JUser::getParam (   $key,
  $default = null 
)

Method to get a parameter value

Paramètres:
string$keyParameter key
mixed$defaultParameter default value
Renvoie:
mixed The value or the default if it did not exist
Depuis:
11.1

Définition à la ligne 284 du fichier user.php.

{
return $this->_params->get($key, $default);
}
JUser::getParameters ( )

Method to get the user parameters

This method used to load the user parameters from a file.

Renvoie:
object The user parameters object.
Depuis:
11.1
Obsolète:
12.3 (Platform) & 4.0 (CMS) - Instead use JUser::getParam()

Définition à la ligne 476 du fichier user.php.

Références JLog\add(), et JLog\WARNING.

{
// @codeCoverageIgnoreStart
JLog::add('JUser::getParameters() is deprecated. JUser::getParam().', JLog::WARNING, 'deprecated');
// @codeCoverageIgnoreEnd
}

+ Voici le graphe d'appel pour cette fonction :

static JUser::getTable (   $type = null,
  $prefix = 'JTable' 
)
static

Method to get the user table object

This function uses a static variable to store the table name of the user table to instantiate. You can call this function statically to set the table name if needed.

Paramètres:
string$typeThe user table name to be used
string$prefixThe user table prefix to be used
Renvoie:
object The user table object
Depuis:
11.1

Définition à la ligne 514 du fichier user.php.

Références JTable\getInstance().

{
static $tabletype;
// Set the default tabletype;
if (!isset($tabletype))
{
$tabletype['name'] = 'user';
$tabletype['prefix'] = 'JTable';
}
// Set a custom table type is defined
if (isset($type))
{
$tabletype['name'] = $type;
$tabletype['prefix'] = $prefix;
}
// Create the user table object
return JTable::getInstance($tabletype['name'], $tabletype['prefix']);
}

+ Voici le graphe d'appel pour cette fonction :

JUser::load (   $id)

Method to load a JUser object by user id number

Paramètres:
mixed$idThe user id of the user to load
Renvoie:
boolean True on success
Depuis:
11.1

Définition à la ligne 839 du fichier user.php.

Références JLog\add(), JText\sprintf(), et JLog\WARNING.

{
// Create the user table object
$table = $this->getTable();
// Load the JUserModel object based on the user id or throw a warning.
if (!$table->load($id))
{
// Reset to guest user
$this->guest = 1;
JLog::add(JText::sprintf('JLIB_USER_ERROR_UNABLE_TO_LOAD_USER', $id), JLog::WARNING, 'jerror');
return false;
}
/*
* Set the user parameters using the default XML file. We might want to
* extend this in the future to allow for the ability to have custom
* user parameters, but for right now we'll leave it how it is.
*/
$this->_params->loadString($table->params);
// Assuming all is well at this point let's bind the data
$this->setProperties($table->getProperties());
// The user is no longer a guest
if ($this->id != 0)
{
$this->guest = 0;
}
else
{
$this->guest = 1;
}
return true;
}

+ Voici le graphe d'appel pour cette fonction :

JUser::save (   $updateOnly = false)

Method to save the JUser object to the database

Paramètres:
boolean$updateOnlySave the object only if not a new user Currently only used in the user reset password method.
Renvoie:
boolean True on success
Depuis:
11.1
Exceptions:
RuntimeException

Définition à la ligne 674 du fichier user.php.

Références JAccess\check(), JAccess\checkGroup(), JEventDispatcher\getInstance(), JFactory\getUser(), et JRegistry\loadString().

{
// Create the user table object
$table = $this->getTable();
$this->params = (string) $this->_params;
$table->bind($this->getProperties());
// Allow an exception to be thrown.
try
{
// Check and store the object.
if (!$table->check())
{
$this->setError($table->getError());
return false;
}
// If user is made a Super Admin group and user is NOT a Super Admin
// @todo ACL - this needs to be acl checked
// Are we creating a new user
$isNew = empty($this->id);
// If we aren't allowed to create new users return
if ($isNew && $updateOnly)
{
return true;
}
// Get the old user
$oldUser = new JUser($this->id);
// Access Checks
// The only mandatory check is that only Super Admins can operate on other Super Admin accounts.
// To add additional business rules, use a user plugin and throw an Exception with onUserBeforeSave.
// Check if I am a Super Admin
$iAmSuperAdmin = $my->authorise('core.admin');
$iAmRehashingSuperadmin = false;
if (($my->id == 0 && !$isNew) && $this->id == $oldUser->id && $oldUser->authorise('core.admin') && substr($oldUser->password, 0, 4) != '$2y$')
{
$iAmRehashingSuperadmin = true;
}
// We are only worried about edits to this account if I am not a Super Admin.
if ($iAmSuperAdmin != true && $iAmRehashingSuperadmin != true)
{
if ($isNew)
{
// Check if the new user is being put into a Super Admin group.
foreach ($this->groups as $groupId)
{
if (JAccess::checkGroup($groupId, 'core.admin'))
{
throw new RuntimeException('User not Super Administrator');
}
}
}
else
{
// I am not a Super Admin, and this one is, so fail.
if (JAccess::check($this->id, 'core.admin'))
{
throw new RuntimeException('User not Super Administrator');
}
if ($this->groups != null)
{
// I am not a Super Admin and I'm trying to make one.
foreach ($this->groups as $groupId)
{
if (JAccess::checkGroup($groupId, 'core.admin'))
{
throw new RuntimeException('User not Super Administrator');
}
}
}
}
}
// Fire the onUserBeforeSave event.
JPluginHelper::importPlugin('user');
$result = $dispatcher->trigger('onUserBeforeSave', array($oldUser->getProperties(), $isNew, $this->getProperties()));
if (in_array(false, $result, true))
{
// Plugin will have to raise its own error or throw an exception.
return false;
}
// Store the user data in the database
$result = $table->store();
// Set the id for the JUser object in case we created a new user.
if (empty($this->id))
{
$this->id = $table->get('id');
}
if ($my->id == $table->id)
{
$registry = new JRegistry;
$registry->loadString($table->params);
$my->setParameters($registry);
}
// Fire the onUserAfterSave event
$dispatcher->trigger('onUserAfterSave', array($this->getProperties(), $isNew, $result, $this->getError()));
}
catch (Exception $e)
{
$this->setError($e->getMessage());
return false;
}
return $result;
}

+ Voici le graphe d'appel pour cette fonction :

JUser::setLastVisit (   $timestamp = null)

Pass through method to the table for setting the last visit date

Paramètres:
integer$timestampThe timestamp, defaults to 'now'.
Renvoie:
boolean True on success.
Depuis:
11.1

Définition à la ligne 457 du fichier user.php.

{
// Create the user table object
$table = $this->getTable();
$table->load($this->id);
return $table->setLastVisit($timestamp);
}
JUser::setParam (   $key,
  $value 
)

Method to set a parameter

Paramètres:
string$keyParameter key
mixed$valueParameter value
Renvoie:
mixed Set parameter value
Depuis:
11.1

Définition à la ligne 299 du fichier user.php.

{
return $this->_params->set($key, $value);
}
JUser::setParameters (   $params)

Method to get the user parameters

Paramètres:
object$paramsThe user parameters object
Renvoie:
void
Depuis:
11.1

Définition à la ligne 495 du fichier user.php.

{
$this->_params = $params;
}

Documentation des données membres

JUser::$_authActions = null
protected

Définition à la ligne 187 du fichier user.php.

JUser::$_authGroups = null
protected

Définition à la ligne 171 du fichier user.php.

JUser::$_authLevels = null
protected

Définition à la ligne 179 du fichier user.php.

JUser::$_errorMsg = null
protected

Définition à la ligne 195 du fichier user.php.

JUser::$_params = null
protected

Définition à la ligne 163 du fichier user.php.

JUser::$activation = null

Définition à la ligne 115 du fichier user.php.

JUser::$block = null

Définition à la ligne 83 du fichier user.php.

JUser::$email = null

Définition à la ligne 59 du fichier user.php.

JUser::$groups = array()

Définition à la ligne 131 du fichier user.php.

JUser::$guest = null

Définition à la ligne 139 du fichier user.php.

JUser::$id = null

Définition à la ligne 35 du fichier user.php.

JUser::$instances = array()
staticprotected

Définition à la ligne 201 du fichier user.php.

JUser::$isRoot = null
protected

Définition à la ligne 27 du fichier user.php.

JUser::$lastResetTime = null

Définition à la ligne 147 du fichier user.php.

JUser::$lastvisitDate = null

Définition à la ligne 107 du fichier user.php.

JUser::$name = null

Définition à la ligne 43 du fichier user.php.

JUser::$params = null

Définition à la ligne 123 du fichier user.php.

JUser::$password = null

Définition à la ligne 67 du fichier user.php.

JUser::$password_clear = ''

Définition à la ligne 75 du fichier user.php.

JUser::$registerDate = null

Définition à la ligne 99 du fichier user.php.

JUser::$resetCount = null

Définition à la ligne 155 du fichier user.php.

JUser::$sendEmail = null

Définition à la ligne 91 du fichier user.php.

JUser::$username = null

Définition à la ligne 51 du fichier user.php.


La documentation de cette classe a été générée à partir du fichier suivant :