Universal class for basic user routine. Class definition for your project purpose is required.
Class provides:
- user database routine (select / insert / update / delete)
- user account routine (login / logout / recover / check)
Probably the best way is to use the ideas of methods realization in your own class.
PHP Tested: 5.6.19, 7.0.11
1. CLASS DEFINITION
2. PUBLIC METHODS
2.1. User::init()
2.2. User::getByID()
2.3. User::getByLogin()
2.4. User::getList()
2.5. User::add()
2.6. User::update()
2.7. User::delete()
2.8. User::loginUpdate()
2.9. User::loginExists()
2.10. User::passwordHash()
2.11. User::passwordCheck()
2.12. User::passwordUpdate()
2.13. User::passwordGet()
2.14. User::login()
2.15. User::logout()
2.16. User::recover()
2.17. User::check()
2.18. User::getError()
Class definition is provided in $_definition variable:
private static $_definition = array(
'table' => 'users', /* users table name */
'id' => 'userID', /* user identifier field name */
'login' => 'login', /* user login field name*/
'pass' => 'password', /* user password field name */
'key' => 'session_key', /* user session key field name */
'fields' => array('group', 'name', 'mail') /* add your fields here */
);
Initialization of class. Should be called before other methods.
$db_drvr - database driver.
$db_host - database server.
$db_host - database name.
$db_user - database user.
$db_pass - database password.
Get user data (except password) by ID.
To get hash of user password use User::passwordGet() method (see section 2.13).
Get user data (except password) by login.
To get hash of user password use User::passwordGet() method (see section 2.13).
It's good idea to use chache here.
Get users list.
Add new user.
$data - user data array with keys according definition.
Password should be provided as is. Method will create hash and write it into database.
Update user data (except login and password).
$data - user data array with keys according definition. Some data could be skipped.
To update login use User::loginUpdate() method (see section 2.8).
To update password use User::passwordUpdate() method (see section 2.12).
Delete user by ID.
Update user login.
Check if $login exists in database. User with $userID skipped.
Create user password hash using random seed.
Check user password.
Update user password. Password should be provided as is. Method will create hash and write it into database.
Get user password hash from database.
Login user in system.
Logout user.
Create new password and update database.
Check current user.
Return list of latest errors as array.