LiveUser_Adminpear.php.netUser authentication and permission management frameworkLiveUser_Admin is meant to be used with the LiveUser package.
It is composed of all the classes necessary to administrate
data used by LiveUser.
You'll be able to add/edit/delete/get things like:
* Rights
* Users
* Groups
* Areas
* Applications
* Subgroups
* ImpliedRights
And all other entities within LiveUser.
At the moment we support the following storage containers:
* PEAR::DB
* PEAR::MDB
* PEAR::MDB2
* PECL::PDO
But it takes no time to write up your own storage container,
so if you like to use native mysql functions straight, then it's possible
to do so in under a hour!Markus Wolffmw21stmw21st@php.netyesArnaud Limbourgarnaudarnaud@php.netyesLukas Kahwe Smithlsmithsmith@pooteeweet.orgyesHelgi Þormardufuzdufuz@php.netyesMatthias Nothhaftmahonomahono@php.netyes2010-10-060.4.00.4.0betabetaLGPL
QA release
Bug #13233 Example1 error when importing data in DB
Bug #11051 Seems class variable is not declared
Bug #8424 incorrect handling of single column joins
4.2.01.4.0b1PEARpear.php.net1.3.1LiveUserpear.php.net0.16.12Logpear.php.net1.7.0DBpear.php.net1.6.0MDBpear.php.net1.1.4MDB2pear.php.net2.1.0XML_Treepear.php.netCrypt_RC4pear.php.net0.14.00.14.0betabeta2004-12-11LGPL
- Refactored nto a separate package.
0.1.00.1.0betabeta2004-12-20LGPL
- refactored into a separate package from LiveUser
- severe BC breaks in the permission API in order to unify the API
- added ErrorStack
- fixed outputRightsConstants() method
- refactored storage layer to use an SQL query builder (DB and MDB support is
currently missing but will be added in the next minor update)
- sql query builder should output more portable SQL code
- sql query builder enables full aliasing of all field names
- sql query builder only joins the necessary tables so the admin API does not
force the usage of any table (especially the translation table)
- searchUser() now also fetches perm data
- the complex container is currently not fully implemented
0.2.00.2.0betabeta2005-03-15LGPL
- perm container now also has a default init() method that is called in the factory
- delete/update now dont require a filter in the id field
- delete/update now return the number of affected rows
- use LiveUser::cryptRC4() for rc4 handling
- added support to be able to query for single values, columns and rows next to
fetching multi dimensional arrays ('select' key in params array of get methods)
- improved error handling in several places to not trigger on empty results
- sequences are now named after the table they belong to
- now requiring MDB2-2.0.0beta3
- if the "force-seq" option is now set to false in the storage config
MDB2 will try to use autoincrement if supported by the RDBMS (you will need
to add autoincrement to the id fields in the applications, areas, groups,
rights, and perm_users tables yourself)
- example 1 now outputs all queries using an MDB2 debug handler
- Subgroups now work
- ImplyRights now work
- One can now remove groups recursively by passing recursive = true to
removeGroup in Perm Complex container (before it was hardcoded to true,
now defaults to false)
- Tests for SubGroups and ImplyRights up and running
- getGroup and getRight now work in Perm Complex Container
- added DB and MDB permission backends
- Complex container is now fully implemented.
- addAreaAdmin and removeAreaAdmin where added to the Complex container
- Admin.php getUser was removed and searchUser was renamed to getUsers and with
new params (BC break!)
- give each example a unique database name
- moved selectable tables into property so that they can be overwritten
- fixed autoinit handling in factoray (bug #3133)
- added missing PEAR error to error stack conversions
- return false if we previously ensured that the value is false anyways for clarity
- call setAdminAuthContainer() in updateUser() and removeUser() to ensure that
the proper auth container is affected
- updated the file headers as per the RFC
- getGroups() in the complex container was refactored and subgroup handling
was reworked (BC break!)
0.2.10.2.1betabeta2005-03-30LGPL
- typo fix in autoinit option (bug #3844)
- updated LiveUser dependency to 0.15.0
- fixed type handling in updateUser()
- update getErrors() with code from the LiveUser class
- typo fix in outputRightsConstants() (bug #3897)
- removed calls to make remove filter on delete of relationship tables (bug #3874)
0.2.20.2.2betabeta2005-05-05LGPL
- delete() now uses findTable() to ensure that only defined table with the
proper fields are being used
- findTable() now only prefixes fields if necessary
- typo fix: hierachy -> hierarchy (bug #4150)
- added ability to prefix explicit tables in findTables()
- no longer use "ids" in insert so we can remove this information from the
Globals.php file in the client
- examples were converted to use MDB2_Schema. See the demodata.php script found
in the client part (http://cvs.php.net/co.php/pear/LiveUser/docs/examples/demodata.php)
- added _call() overloading method for php5 users in LiveUser_Admin class
- added support for table name aliasing (fairly untested)
0.3.00.3.0betabeta2005-06-21LGPL
- added _call() overloading method for php5 users in LiveUser_Admin class
- dont require a conf array for all but the first call of singleton()
- updated LiveUser dependency
storage
- delete() now uses findTable() to ensure that only defined table with the
proper fields are being used
- findTable() now only prefixes fields if necessary
- added ability to prefix explicit tables in findTables()
- no longer use "ids" in insert so we can remove this information from the
Globals.php file in the client
- added support for table name aliasing
- tweaked NULL value handling in createWhere() (bug #4638)
authentication
- typo fix (bug #4109)
- typo fix (bug #4173)
- moved to admin storage class
- tweaked disconnect to only disconnect when a new connection was made
permission
- typo fix: hierachy -> hierarchy (bug #4150)
- improved the "with" support (fixing bug #3245)
- tweaked disconnect to only disconnect when a new connection was made
- fixed bug that would lead to hierarchy mode in getGroups only fetching the
first subgroup level (bug #4633)
examples
- examples were converted to use MDB2_Schema. See the demodata.php script found
in the client part (http://cvs.php.net/co.php/pear/LiveUser/docs/examples/demodata.php)
- removed the test.php script since this code is outdated and serves no purpose any longer
- updated examples to use the new auth config layout due to using admin storage
- tweaked error handling on init() call
0.3.10.3.1betabeta2005-07-19LGPL
- php 4.4 reference assignment fixes
- dont filter out subgroups from the previous level in
_getGroupsWithHierarchy() (bug #4860)
0.3.20.3.2betabeta2005-08-09LGPL
- copy storage config before passing it to the storageFactory() since this
method messes with the values which causes the original to be modified due to
using pass by reference
- removed old 'with' handling code that is no longer necessary from getGroups()
in the medium container
0.3.30.3.3betabeta2005-08-17LGPL
- typo fix in phpdoc (bug #5054)
- removed space in the example1 directory name
- ensure that fields are properly aliased (bug #5059)
- added an aliased field to exampl1 so that we can better test liveuser_admin
- several CS fixes
- removed uncessary optional dependencies on XML_Tree and Crypt_RC4
- fixed issue in upate() handling in the storage of required fields
- supress errors due to deleting non existant tables in example1
- fixed bug in setFetchMode() calling in example1
- removed warning about extra_sql.sql in example1
- pass the storage config array by ref after all
0.3.40.3.4betabeta2005-09-02LGPL
- fixed typo error in sanity checking of the SQL storage layer update() method
- fixed bug in the SQL storage layer insert() method that would lead to the
sequence value not being returned if it was set externally. this for example
leads to broken behaviour in the addUser() wrapper method in LiveUser_Admin
- added error handler to example1 so that notices and warnings will not go
unnoticed so easily in the large output
0.3.50.3.5betabeta2005-10-10LGPL
- only alias orders fields if needed (bug #5310)
- fixed warning in _getGroupsWithHierarchy() if filters match no group
- several typo fixes in getGroups() in the complex container
- several fixes to getRights() in the complex container (bug #5453)
- added test.php to the linkbar in example1
- removed autoInit (call setAdminContainers() manually instead) *BC BREAK*
- reworked log/debug handling (there is a new 'debug' conf option which can
either be a bool or a log instance)
- made the log property public which made it possible to remove addErrorLog()
- use static LiveUser::PEARLogFactory instead of loadPEARLog()
0.3.60.3.6betabeta2005-12-21LGPL
- dont raise an error when no user is found in getUsers() helper method (bug #5690)
- fixed bug in handling of _checkExplicitTable() return value in findTables() (bug #5706)
- tweaked error messages for failed factory method calls
- renamed query() to exec() to match the MDB2 RC1 API
- use exec() instead of query()
- handle database structure merging inside the Storage class
(previously handled in the auth/perm backend drivers)
- improved sanity checking in insert and update when values for undefined fields are passed
- do nothing in update() if an empty data array is passed
- required fields may not be unset, but may be empty strings
(corrected overly strict check in update() method)
- owner_*_id is no longer necessary for the tests
- leave owner_user_id management to the developer
- tweaked errors messages in insert() and update()
- in createJoinFilter first work through all the direct matches before recursing
- typo in loadModule call in the MDB2 backend (bug #6092)
- removed loginTimeout feature (disable lastlogin if you are concerned about
the cost of updating the lastlogin time)
- tons of phpdoc and whitespace fixes and additions
- updated API calls to LiveUser to version 0.16.8
- renamed setAdminContainers() to init()
0.3.70.3.7betabeta2006-02-21LGPL
- fix "No rights for a user if the user only has inherited rights" (bug #6374)
- do not overwrite all filters in _get*() helper methods
- minor issue with 'alias' position in the config array in example1
- make sure that tables required as intermediate join steps are listed in the from
- add depth parameter to createJoinFilter (may be used to determine shortest join path eventually)
- fixed detection if list of tables has been reduced or not
- do not push an error on the stack for a possible recursion because it may just
be one possible path we are evaluating
- added "by_group" optional parameter to params getRights() which determines if
the userrights table should be used or rather the grouprights and groupupsers tables
- incorrect handling of filters inside unimplyRights() (bug #6592)
- renamed "connection" config option to "dbc" *BC BREAK*
- cleaned up and unified init() in the storage classes
- added support for '*' in fields list as an alias to fetch all fields in the root table
- made LiveUser_Admin::getUsers() API as flexible as in the containers *BC BREAK*
- fixed serious issue in join filter handling that caused join filters to be ignored
- removed allowDuplicateHandles and allowEmptyPasswords options, they are now
handled through the table definition in the given Globals.php (overwriteable
via the config array) *BC BREAK*
- typo fix in extended module loading in the MDB2 storage container
- fixed inherited and implied handling in getRights() when fetching only 2 columns
- added initial version of a PDO storage container (needs more testing)
- removed setCurrentApplication()/getCurrentApplication() methods since they are
no longer relevant *BC BREAK*
0.3.80.3.8betabeta2006-04-19LGPL
- wrong parameter used in getUsers('auth', ..) (report by gregory)
- fixed usage of outdated getUsers() API in init()
- phpdoc fix in outputRightsConstants() (bug #7037)
- removed bogus parameter from phpdoc in getRights() in medium/complex container
- added support for selectable_tables in the param array in get*() methods
- fixed updating of implied right field in umimplyRight() (bug #7050)
- made stack property public
- remove artificial limitation that prevented groups to have multiple parents
- fixed PDO storage layer queryAll() method (bug #7213)
- expanded error handling in Log instance creation
- fixed outdated API call to getRights() in _getInheritedRights() (bug #7236)
- made translations columns wider for example1
- replace isset() with array_key_exists() where applicable
- added link to area admin area test to the menu in example1
- reworked getRights() and getGroups() API for recursive reads
(related to bug #7241) *BC break*
Set the filter parameters for the recursion explicitly. For getGroups() in the
'subgroups', 'hierarchy' keys (note that hierarchy is now no longer specified
by setting 'subgroups' => 'hierarchy'). For getRights() 'inherited', 'implied'
and 'hierarchy' (note that hierarchy is now no longer specified by setting
'implied' => 'hierarchy';).
- expanded outputRightsConstants() filtering
- changed the getUsers(), addUser() and updateUser() API to be more in line
with the container APIs *BC break* (req #7025)
- added LiveUser_Admin_Storage::setSelectDefaultParams() to centralize default setting
- added selectable_tables property to auth backend
- fixed typos in 'with' handling in the perm container
- prevent duplictate entries in the fields not yet linked array
0.3.90.3.9betabeta2010-10-06LGPL
- pass debug parameter by ref to the constructor since it can be an object instance
- updated API calls of getBeforeId() and getAfterId() in the storage classes
- refactored decryptPW() and encryptPW() into static methods in the LiveUser class
- force null instead of false for PDO fetch() calls that return empty sets
- added static error push when a non array is passed to setSelectDefaultParams() (Request #7779)
- use empty() instead of array_key_exists() in setSelectDefaultParams()
- update of auth_user_id not possible via LiveUser_Admin::updateUser() (Bug #7975; thx to Matthias)
- fixed incorrect handling of single column joins (Bug #8424)
- better handling of '*' inside the field list together with explicit fields (Bug #7955)
0.4.00.4.0betabeta2010-10-06LGPL
QA release
Bug #13233 Example1 error when importing data in DB
Bug #11051 Seems class variable is not declared
Bug #8424 incorrect handling of single column joins