<?xml version="1.0" encoding="iso-8859-1"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns="http://purl.org/rss/1.0/"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
>
    <channel rdf:about="http://pear.php.net">
    <link>http://pear.php.net/</link>
    <dc:creator>pear-webmaster@lists.php.net</dc:creator>
    <dc:publisher>pear-webmaster@lists.php.net</dc:publisher>
    <dc:language>en-us</dc:language><items>
<rdf:Seq><rdf:li rdf:resource="http://pear.php.net/package/LiveUser/download/0.16.14/"/>
<rdf:li rdf:resource="http://pear.php.net/package/LiveUser_Admin/download/0.4.0/"/>
<rdf:li rdf:resource="http://pear.php.net/package/LiveUser/download/0.16.13/"/>
<rdf:li rdf:resource="http://pear.php.net/package/LiveUser_Admin/download/0.3.9/"/>
<rdf:li rdf:resource="http://pear.php.net/package/LiveUser/download/0.16.12/"/>
<rdf:li rdf:resource="http://pear.php.net/package/LiveUser_Admin/download/0.3.8/"/>
<rdf:li rdf:resource="http://pear.php.net/package/LiveUser/download/0.16.11/"/>
<rdf:li rdf:resource="http://pear.php.net/package/LiveUser/download/0.16.10/"/>
<rdf:li rdf:resource="http://pear.php.net/package/LiveUser_Admin/download/0.3.7/"/>
<rdf:li rdf:resource="http://pear.php.net/package/LiveUser/download/0.16.9/"/>
</rdf:Seq>
</items>

<title>PEAR: Latest releases for mahono</title>
<description>The latest releases for the PEAR developer mahono (Matthias Nothhaft)</description>
</channel>

<item rdf:about="http://pear.php.net/package/LiveUser/download/0.16.14/">
 <title>LiveUser 0.16.14</title>
 <link>http://pear.php.net/package/LiveUser/download/0.16.14/</link>
 <content:encoded>QA release&lt;br /&gt;
Bug #9517 Config Parameter permContainer=&gt;storage=&gt;PDO=&gt;prefix doesn't work 	dufuz&lt;br /&gt;
Bug #13014 PHP Warning on setcookie() 	dufuz&lt;br /&gt;
Bug #13154 Example 4:schema validation error 	dufuz&lt;br /&gt;
Bug #13391 example 5 - MDB2_Schema Error in demodata.xml 	dufuz&lt;br /&gt;
Bug #13650 Examples (demodata script) problem 	dufuz&lt;br /&gt;
Doc Bug #14954 mention ACL in the description/documention 	kguest&lt;br /&gt;
Bug #15126 Assigning the return value of new by reference is deprecated 	doconnor&lt;br /&gt;
Bug #15127 Parse error: syntax error, unexpected T_RETURN in ./LiveUser/Perm/Storage/Cache 	doconnor&lt;br /&gt;
Bug #17723 Patch: Avoid ereg in favor of preg_match 	olleolleolle
 </content:encoded>
 <dc:date>2010-10-15T14:32:00-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/LiveUser_Admin/download/0.4.0/">
 <title>LiveUser_Admin 0.4.0</title>
 <link>http://pear.php.net/package/LiveUser_Admin/download/0.4.0/</link>
 <content:encoded>QA release&lt;br /&gt;
Bug #13233  	Example1 error when importing data in DB&lt;br /&gt;
Bug #11051  	Seems class variable is not declared&lt;br /&gt;
Bug #8424  	incorrect handling of single column joins
 </content:encoded>
 <dc:date>2010-10-05T16:24:42-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/LiveUser/download/0.16.13/">
 <title>LiveUser 0.16.13</title>
 <link>http://pear.php.net/package/LiveUser/download/0.16.13/</link>
 <content:encoded>- #9418: Initialization for example 5 wrong&lt;br /&gt;
- #9575: Example trips over MySQL boolean/int&lt;br /&gt;
- #9581: Add support for session.cookie_httponly
 </content:encoded>
 <dc:date>2008-01-28T03:29:59-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/LiveUser_Admin/download/0.3.9/">
 <title>LiveUser_Admin 0.3.9</title>
 <link>http://pear.php.net/package/LiveUser_Admin/download/0.3.9/</link>
 <content:encoded>- pass debug parameter by ref to the constructor since it can be an object instance&lt;br /&gt;
- updated API calls of getBeforeId() and getAfterId() in the storage classes&lt;br /&gt;
- refactored decryptPW() and encryptPW() into static methods in the LiveUser class&lt;br /&gt;
- force null instead of false for PDO fetch() calls that return empty sets&lt;br /&gt;
- added static error push when a non array is passed to setSelectDefaultParams() (Request #7779)&lt;br /&gt;
- use empty() instead of array_key_exists() in setSelectDefaultParams()&lt;br /&gt;
- update of auth_user_id not possible via LiveUser_Admin::updateUser() (Bug #7975; thx to Matthias)&lt;br /&gt;
- fixed incorrect handling of single column joins (Bug #8424)&lt;br /&gt;
- better handling of '*' inside the field list together with explicit fields (Bug #7955)
 </content:encoded>
 <dc:date>2006-08-22T13:35:40-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/LiveUser/download/0.16.12/">
 <title>LiveUser 0.16.12</title>
 <link>http://pear.php.net/package/LiveUser/download/0.16.12/</link>
 <content:encoded>- wrong use of pdo fetch method, when no result could be fetched it returns&lt;br /&gt;
  false with no error. Swith to using fetchAll and check for an empty array&lt;br /&gt;
- we cannot decrypt most of the encryption method used by the hash extension so&lt;br /&gt;
  we default to returning the unmodified string&lt;br /&gt;
- the wrong variable was used to report the type of permission container when an&lt;br /&gt;
  error occured&lt;br /&gt;
- push an error on the stack when the encryption method cannot be found&lt;br /&gt;
- make sequence columns primary key&lt;br /&gt;
- properly disconnect the pdo object&lt;br /&gt;
- make it possible to set the status message mapping&lt;br /&gt;
- register options for create (Bug #7704)&lt;br /&gt;
- use the hash extension if it is present for the password encryption&lt;br /&gt;
- refactored decryptPW() and encryptPW() into static methods in the LiveUser class&lt;br /&gt;
- force null instead of false for PDO fetch() calls that return empty sets&lt;br /&gt;
- fixed logging into example1&lt;br /&gt;
- debug =&gt; false in conf doesn't work (Bug #7564; thx to Matthias)&lt;br /&gt;
- added support for user defined handle fields&lt;br /&gt;
  in DB, MDB, MDB2 and PDO containers you can set a list of fields in your auth&lt;br /&gt;
  container storage config, default is 'handle', example:&lt;br /&gt;
  'handles' =&gt; array('handle', 'auth_user_id', 'email')&lt;br /&gt;
  these fields are now used to find the right user on login (Request #7781)&lt;br /&gt;
- fixed LiveUser::decryptPW(): added missing third parameter 'secret'&lt;br /&gt;
- check if safe_mode is enabled in fileExists() to determine what algo to use (Bug #8296)
 </content:encoded>
 <dc:date>2006-08-22T13:34:20-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/LiveUser_Admin/download/0.3.8/">
 <title>LiveUser_Admin 0.3.8</title>
 <link>http://pear.php.net/package/LiveUser_Admin/download/0.3.8/</link>
 <content:encoded>- wrong parameter used in getUsers('auth', ..) (report by gregory)&lt;br /&gt;
- fixed usage of outdated getUsers() API in init()&lt;br /&gt;
- phpdoc fix in outputRightsConstants() (bug #7037)&lt;br /&gt;
- removed bogus parameter from phpdoc in getRights() in medium/complex container&lt;br /&gt;
- added support for selectable_tables in the param array in get*() methods&lt;br /&gt;
- fixed updating of implied right field in umimplyRight() (bug #7050)&lt;br /&gt;
- made stack property public&lt;br /&gt;
- remove artificial limitation that prevented groups to have multiple parents&lt;br /&gt;
- fixed PDO storage layer queryAll() method (bug #7213)&lt;br /&gt;
- expanded error handling in Log instance creation&lt;br /&gt;
- fixed outdated API call to getRights() in _getInheritedRights() (bug #7236)&lt;br /&gt;
- made translations columns wider for example1&lt;br /&gt;
- replace isset() with array_key_exists() where applicable&lt;br /&gt;
- added link to area admin area test to the menu in example1&lt;br /&gt;
- reworked getRights() and getGroups() API for recursive reads&lt;br /&gt;
  (related to bug #7241) *BC break*&lt;br /&gt;
  Set the filter parameters for the recursion explicitly. For getGroups() in the&lt;br /&gt;
  'subgroups', 'hierarchy' keys (note that hierarchy is now no longer specified&lt;br /&gt;
  by setting 'subgroups' =&gt; 'hierarchy'). For getRights() 'inherited', 'implied'&lt;br /&gt;
  and 'hierarchy' (note that hierarchy is now no longer specified by setting&lt;br /&gt;
  'implied' =&gt; 'hierarchy';).&lt;br /&gt;
- expanded outputRightsConstants() filtering&lt;br /&gt;
- changed the getUsers(), addUser() and updateUser() API to be more in line&lt;br /&gt;
  with the container APIs *BC break* (req #7025)&lt;br /&gt;
- added LiveUser_Admin_Storage::setSelectDefaultParams() to centralize default setting&lt;br /&gt;
- added selectable_tables property to auth backend&lt;br /&gt;
- fixed typos in 'with' handling in the perm container&lt;br /&gt;
- prevent duplictate entries in the fields not yet linked array
 </content:encoded>
 <dc:date>2006-04-19T04:46:01-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/LiveUser/download/0.16.11/">
 <title>LiveUser 0.16.11</title>
 <link>http://pear.php.net/package/LiveUser/download/0.16.11/</link>
 <content:encoded>- parse error typo fix in PEARAuth container (bug #6968)&lt;br /&gt;
- minor improvements to the phpdoc comments in PEARAuth container&lt;br /&gt;
- use ugly fopen() hack in fileExists()&lt;br /&gt;
  http://marc.theaimsgroup.com/?l=pear-dev&amp;m=114148949106207&amp;w=2&lt;br /&gt;
- changed API for readuserData(), auth_user_id parameter now contains the&lt;br /&gt;
  auth_user_id to use&lt;br /&gt;
- login() now supports passing in an auth_user_id instead of the handle/password&lt;br /&gt;
- made stack property public&lt;br /&gt;
- typo fix in PDO container readImplyingRights() method (bug #7195)&lt;br /&gt;
- expanded error handling in Log instance creation&lt;br /&gt;
- handle if no proper credentials where passed to readUserData() (bug #7262)&lt;br /&gt;
- replace isset() with array_key_exists() where applicable&lt;br /&gt;
- disable __autoload() in class_exists() calls (bug #7304)&lt;br /&gt;
- brought property names in line s/rights/right_ids *BC break*&lt;br /&gt;
- MDB2_Schema 0.5 and MDB2 2.0.1 handles nulls in schema files properly so&lt;br /&gt;
  there is no need to disable MDB2_PORTABILITY_EMPTY_TO_NULL in the installer
 </content:encoded>
 <dc:date>2006-04-19T04:44:56-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/LiveUser/download/0.16.10/">
 <title>LiveUser 0.16.10</title>
 <link>http://pear.php.net/package/LiveUser/download/0.16.10/</link>
 <content:encoded>- Do not include Cache.php since its only a concept and not implemented yet&lt;br /&gt;
- fixed serious issue with right reading in the Medium and Complex container&lt;br /&gt;
- right_level may not be null in schema (use default if not explicitly set)&lt;br /&gt;
- phpdoc improvements&lt;br /&gt;
- bumped dependency for MDB2 to first stable release&lt;br /&gt;
- added missing optional dependency on mcrypt&lt;br /&gt;
- made admin user a superadmin in example4&lt;br /&gt;
- bumped copyright to 2006
 </content:encoded>
 <dc:date>2006-02-27T13:17:51-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/LiveUser_Admin/download/0.3.7/">
 <title>LiveUser_Admin 0.3.7</title>
 <link>http://pear.php.net/package/LiveUser_Admin/download/0.3.7/</link>
 <content:encoded>- fix &quot;No rights for a user if the user only has inherited rights&quot; (bug #6374)&lt;br /&gt;
- do not overwrite all filters in _get*() helper methods&lt;br /&gt;
- minor issue with 'alias' position in the config array in example1&lt;br /&gt;
- make sure that tables required as intermediate join steps are listed in the from&lt;br /&gt;
- add depth parameter to createJoinFilter (may be used to determine shortest join path eventually)&lt;br /&gt;
- fixed detection if list of tables has been reduced or not&lt;br /&gt;
- do not push an error on the stack for a possible recursion because it may just&lt;br /&gt;
  be one possible path we are evaluating&lt;br /&gt;
- added &quot;by_group&quot; optional parameter to params getRights() which determines if&lt;br /&gt;
  the userrights table should be used or rather the grouprights and groupupsers tables&lt;br /&gt;
- incorrect handling of filters inside unimplyRights() (bug #6592)&lt;br /&gt;
- renamed &quot;connection&quot; config option to &quot;dbc&quot; *BC BREAK*&lt;br /&gt;
- cleaned up and unified init() in the storage classes&lt;br /&gt;
- added support for '*' in fields list as an alias to fetch all fields in the root table&lt;br /&gt;
- made LiveUser_Admin::getUsers() API as flexible as in the containers *BC BREAK*&lt;br /&gt;
- fixed serious issue in join filter handling that caused join filters to be ignored&lt;br /&gt;
- removed allowDuplicateHandles and allowEmptyPasswords options, they are now&lt;br /&gt;
  handled through the table definition in the given Globals.php (overwriteable&lt;br /&gt;
  via the config array) *BC BREAK*&lt;br /&gt;
- typo fix in extended module loading in the MDB2 storage container&lt;br /&gt;
- fixed inherited and implied handling in getRights() when fetching only 2 columns&lt;br /&gt;
- added initial version of a PDO storage container (needs more testing)&lt;br /&gt;
- removed setCurrentApplication()/getCurrentApplication() methods since they are&lt;br /&gt;
  no longer relevant *BC BREAK*
 </content:encoded>
 <dc:date>2006-02-21T14:39:09-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/LiveUser/download/0.16.9/">
 <title>LiveUser 0.16.9</title>
 <link>http://pear.php.net/package/LiveUser/download/0.16.9/</link>
 <content:encoded>This releases fixes a minor security issue that is limited to the optional&lt;br /&gt;
remember me feature. This issue was report to us by GulfTech Security Research.&lt;br /&gt;
&lt;br /&gt;
The issue would allow an attacker to determine the existance of files inside the&lt;br /&gt;
file system, as well as being able to delete files:&lt;br /&gt;
- if the relativ path is shorter than 32 characters (including a null&lt;br /&gt;
byte)&lt;br /&gt;
- if null bytes are handled inside the &quot;_COOKIE&quot; superglobal, for example&lt;br /&gt;
through usage of magic_quotes_gpc, the issue becomes essentially limited to&lt;br /&gt;
files ending with &quot;.lu&quot;.&lt;br /&gt;
&lt;br /&gt;
All installations using the remember me feature are strongly urged to update.&lt;br /&gt;
This release also changes some other aspects including a BC break so developers&lt;br /&gt;
can optionally patch their current installations from the changes in the&lt;br /&gt;
following commit:&lt;br /&gt;
http://cvs.php.net/viewcvs.cgi/pear/LiveUser/LiveUser.php?r1=1.148&amp;r2=1.149&amp;diff_format=u&lt;br /&gt;
&lt;br /&gt;
- fixed major bug in PEARAuth container: auth_user_id is not an optional property&lt;br /&gt;
- added passwordEncryptionMode and secret to phpdoc comment&lt;br /&gt;
- made cryptRC4() method public to match usage in auth common in the client and admin api&lt;br /&gt;
- fixed handling of the secret user defineable property (bug #6551)&lt;br /&gt;
- added support for user_group_ids (bug #6517)&lt;br /&gt;
- allow grouprights and groupusers table to join eachother&lt;br /&gt;
- updateProperty doesn't update the session (bug #6612)&lt;br /&gt;
- renamed &quot;connection&quot; config option to &quot;dbc&quot; *BC BREAK*&lt;br /&gt;
- cleaned up and unified init() in the storage classes&lt;br /&gt;
- added example for dumping SQL to a file to installer&lt;br /&gt;
- add support for force_seq to installer&lt;br /&gt;
- removed allowDuplicateHandles and allowEmptyPasswords options, they are now&lt;br /&gt;
  handled through the table definition in the given Globals.php (overwriteable&lt;br /&gt;
  via the config array) *BC BREAK*&lt;br /&gt;
- initial untested support for PDO in the installer&lt;br /&gt;
- added examples for setting length and defaults to installer&lt;br /&gt;
- use overwrite when unlink is enabled in the installer&lt;br /&gt;
- reworked handling of merging user with group rights *BC BREAK*&lt;br /&gt;
When using the Medium or Complex container a user may gain rights through direct&lt;br /&gt;
assignment or through membership in a group that has rights assigned. The user&lt;br /&gt;
and group rights are merged with the following logic:&lt;br /&gt;
* if the right is only assigned to a member group but not the user the right is&lt;br /&gt;
  available to the user at the level at which the group has the right&lt;br /&gt;
* if the right is only assigned to the user at a level greater than zero but not&lt;br /&gt;
  to a member group the right is available to the user at the level at which&lt;br /&gt;
  user has the right&lt;br /&gt;
* if the right is only assigned to the user at a level equal to zero but not&lt;br /&gt;
  to a member group the right is available to the user at the level at which&lt;br /&gt;
  user has the right&lt;br /&gt;
* if the right is only assigned to the user at a level lower than zero but not&lt;br /&gt;
  to a member group then the right is unavailable to the user&lt;br /&gt;
* if the is assigned to a member group and the user and the level at which the&lt;br /&gt;
  user has the right is greater than zero, then the right is available to the&lt;br /&gt;
  user at higher level of the two&lt;br /&gt;
* if the is assigned to a member group and the user and the level at which the&lt;br /&gt;
  user has the right is equal to zero, then the right is unavailable to the user&lt;br /&gt;
* if the is assigned to a member group and the user and the level at which the&lt;br /&gt;
  user has the right is lower than zero, then the right is available to the&lt;br /&gt;
  user at the minimum of the group assigned level and the addition of the&lt;br /&gt;
  negativ user level and the maximum level&lt;br /&gt;
Example:&lt;br /&gt;
The user as the following right_id =&gt; level pairs&lt;br /&gt;
array&lt;br /&gt;
  1 =&gt; 3&lt;br /&gt;
  2 =&gt; -2&lt;br /&gt;
  3 =&gt; 0&lt;br /&gt;
  5 =&gt; -1&lt;br /&gt;
&lt;br /&gt;
The groups he is a member of have the following right_id =&gt; level pairs&lt;br /&gt;
array&lt;br /&gt;
  1 =&gt; 1&lt;br /&gt;
  2 =&gt; 3&lt;br /&gt;
  3 =&gt; 3&lt;br /&gt;
  4 =&gt; 2&lt;br /&gt;
&lt;br /&gt;
The final right_id =&gt; level pairs are as follows&lt;br /&gt;
array&lt;br /&gt;
  1 =&gt; 3 // user has a higher level (3) than the group level (1)&lt;br /&gt;
  2 =&gt; 1 // 3 - 2 means a maximum possible level of 1&lt;br /&gt;
  4 =&gt; 2 // only group has the right at level 2&lt;br /&gt;
  5 =&gt; 2 // only user has the right at level 3 - 1 = 2
 </content:encoded>
 <dc:date>2006-02-21T14:38:18-05:00</dc:date>
</item>

</rdf:RDF>