JUser

From Joomla! Documentation
Revision as of 13:17, 22 November 2009 by Macsimice (Talk | contribs)

Jump to: navigation, search

JUser is an abstract class which provides a number of methods to handle Users.

Contents

Availability

Joomla 1.5 Joomla 1.6

Defined in

/libraries/joomla/user/user.php

Extends

Get and Set Methods

Properties which do not have specific get or set methods listed here can be retrieved or set using the inherited JObject->get method.

Get method Set method Description Property
setLastVisit Sets the last visit date
getParam setParam User Param
getParameters setParameters User Params
getTable Gets the user table object

Other Methods

Method name Description
defParam Sets a default Param, if it does not exists. See separate reference page for further information.
authorize Checks JUser object authorization against an access control object and optionally an access extension object. See separate reference page for further information.
bind Binds an associative array of data to the user object. See separate reference page for further information.
save Saves the JUser object to the database. See separate reference page for further information.
getInstance Returns a reference to the global JUser object of a given type, only creating it if it doesn't already exist. In most cases you should use JFactory::getUser instead.
delete Deletes the JUser object from the database.

Importing

jimport( 'joomla.user.user' );

Examples

Create a fresh user

Should perhaps be moved to JFactory::getUser, cause using "new JUser" isn't recommended; so no example is necessary
/*
 
I handle this code as if it is a snippet of a method or function!!
 
First set up some variables/objects
*/
// get the ACL
$acl =& JFactory::getACL();
 
/* get the com_user params */
 
jimport('joomla.application.component.helper'); // include libraries/application/component/helper.php
$usersParams = &JComponentHelper::getParams( 'com_users' ); // load the Params
 
// "generate" a new JUser Object
$user = JFactory::getUser(0); // it's important to set the "0" otherwise your admin user information will be loaded
 
$data = array(); // array for all user settings
 
// get the default usertype
$usertype = $usersParams->get( 'new_usertype' );
if (!$usertype) {
    $usertype = 'Registered';
}
 
// set up the "main" user information
 
$data['name'] = $firstname.' '.$lastname; // add first- and lastname
$data['username'] = $username; // add username
$data['email'] = $email; // add email
$data['gid'] = $acl->get_group_id( '', $usertype, 'ARO' );  // generate the gid from the usertype
 
/* no need to add the usertype, it will be generated automaticaly from the gid */
 
$data['password'] = $password; // set the password
$data['password2'] = $password; // confirm the password
$data['sendEmail'] = 1; // should the user receive system mails?
 
/* Now we can decide, if the user will need an activation */
 
$useractivation = $usersParams->get( 'useractivation' ); // in this example, we load the config-setting
if ($useractivation == 1) { // yeah we want an activation
 
    jimport('joomla.user.helper'); // include libraries/user/helper.php
    $data['block'] = 1; // block the User
    $data['activation'] =JUtility::getHash( JUserHelper::genRandomPassword()) ); // set activation hash (don't forget to send an activation email)
 
}
else { // no we need no activation
 
    $data['block'] = 0; // don't block the user
 
}
 
if (!$user->bind($data)) { // now bind the data to the JUser Object, if it not works....
 
    JError::raiseWarning('', JText::_( $user->getError())); // ...raise an Warning
    return false; // if you're in a method/function return false
 
}
 
if (!$user->save()) { // if the user is NOT saved...
 
    JError::raiseWarning('', JText::_( $user->getError())); // ...raise an Warning
    return false; // if you're in a method/function return false
 
}
 
return $user; // else return the new JUser object

Used Classes/Methods

  1. JFactory
  2. JUser
  3. JUserHelper
  4. JComponentHelper
  5. JUtility
  6. JError
  7. JText
  8. jimport

See also

Personal tools
Namespaces

Variants
Actions
Navigation
Joomla! Sites
Toolbox