DomCI : Update all the PHPDoc

git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@3279 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
2016-12-09 14:47:48 +00:00
parent b102168208
commit b55ea95fae
21 changed files with 953 additions and 424 deletions

View File

@@ -10,10 +10,14 @@ class auth
public $appName = null; public $appName = null;
/** Display the authentication page /** Display the authentication page
The message is displayed to the user in case of error * The message is displayed to the user in case of error
The url is the caller url to go back if authentication is correct * The url is the caller url to go back if authentication is correct
@param string|null $message Message to display to the user * @param string $baseURL The URL base to use for the links
@param string|null $url URL to go back after successful authentication */ * @param string|null $message Message to display to the user
* @param string|null $url URL to go back after successful authentication
* @param mixed $alreadyAuth If the user is already authenticated, the value
* will be displayed if the user is coming on the page.
*/
public function pageHTML ($baseURL, $message="", $url="", $alreadyAuth=false) public function pageHTML ($baseURL, $message="", $url="", $alreadyAuth=false)
{ {
$res = ""; $res = "";
@@ -133,7 +137,8 @@ class auth
return $res; return $res;
} }
/** Establish the connection to authentication server */ /** Establish the connection to authentication server
*/
public function connect () public function connect ()
{ {
throw new Exception (dgettext("domframework", throw new Exception (dgettext("domframework",
@@ -142,17 +147,19 @@ class auth
} }
/** Check if the email and password are correct /** Check if the email and password are correct
Return TRUE if the authentication is correct * Return TRUE if the authentication is correct
Return an exception if there is a problem * Return an exception if there is a problem
@param string $email Email to authenticate * @param string $email Email to authenticate
@param string $password Password to authenticate */ * @param string $password Password to authenticate
*/
public function authentication ($email, $password) public function authentication ($email, $password)
{ {
throw new exception (dgettext("domframework", throw new exception (dgettext("domframework",
"No authentication available"), 405); "No authentication available"), 405);
} }
/** Return all the parameters recorded for the authenticate user */ /** Return all the parameters recorded for the authenticate user
*/
public function getdetails () public function getdetails ()
{ {
throw new exception (dgettext("domframework", throw new exception (dgettext("domframework",
@@ -160,9 +167,10 @@ class auth
} }
/** Method to change the password /** Method to change the password
@param string $oldpassword The old password (to check if the user have the * @param string $oldpassword The old password (to check if the user have the
rights to change the password) * rights to change the password)
@param string $newpassword The new password to be recorded */ * @param string $newpassword The new password to be recorded
*/
public function changepassword ($oldpassword, $newpassword) public function changepassword ($oldpassword, $newpassword)
{ {
throw new exception (dgettext("domframework", throw new exception (dgettext("domframework",
@@ -170,10 +178,11 @@ class auth
} }
/** Method to overwrite the password (without oldpassword check) /** Method to overwrite the password (without oldpassword check)
Must be reserved to the administrators. For the users, use changepassword * Must be reserved to the administrators. For the users, use changepassword
method * method
@param string $email the user identifier to select * @param string $email the user identifier to select
@param string $newpassword The new password to be recorded */ * @param string $newpassword The new password to be recorded
*/
public function overwritepassword ($email, $newpassword) public function overwritepassword ($email, $newpassword)
{ {
throw new exception (dgettext("domframework", throw new exception (dgettext("domframework",
@@ -181,13 +190,16 @@ class auth
} }
/** List all the users available in the database /** List all the users available in the database
Return firstname, lastname, mail, with mail is an array */ * Return firstname, lastname, mail, with mail is an array
*/
public function listusers () public function listusers ()
{ {
throw new exception (dgettext("domframework", throw new exception (dgettext("domframework",
"No List User available"), 405); "No List User available"), 405);
} }
/** Method to disconnect the authenticated user
*/
public function logout () public function logout ()
{ {
throw new exception (dgettext("domframework", throw new exception (dgettext("domframework",

View File

@@ -9,9 +9,13 @@ require_once ("domframework/dblayer.php");
class authsql extends auth class authsql extends auth
{ {
/** The DSN to use to connect to SQL database */
public $dsn = null; public $dsn = null;
/** The username to connect to the database */
public $username = null; public $username = null;
/** The password to use to connecto to the database */
public $password = null; public $password = null;
/** The driver options for the PDO driver */
public $driver_options = null; public $driver_options = null;
/** The table name to use */ /** The table name to use */
public $table = null; public $table = null;

View File

@@ -9,12 +9,17 @@ require_once ("domframework/dblayer.php");
user by its groups membership */ user by its groups membership */
class authzgroups class authzgroups
{ {
/** The table prefix to use */
public $tableprefix = ""; public $tableprefix = "";
/** The dblayer object use to manage the Object table */
private $dbObject = null; private $dbObject = null;
/** The dblayer object use to manage the Group table */
private $dbGroup = null; private $dbGroup = null;
/** The dblayer object use to manage the GroupMember table */
private $dbGroupMember = null; private $dbGroupMember = null;
/** The dblayer object use to manage the Right table */
private $dbRight = null; private $dbRight = null;
/** Set the debug level */
public $debug = 0; public $debug = 0;
/** A local cache of the rights if multiple tests are needed */ /** A local cache of the rights if multiple tests are needed */
private $rightCache = null; private $rightCache = null;
@@ -23,8 +28,11 @@ class authzgroups
// USER RIGHTS // // USER RIGHTS //
///////////////////// /////////////////////
/** Return an array with all the rights of the user in the module. /** Return an array with all the rights of the user in the module.
Cache this information to be quicker with next requests * Cache this information to be quicker with next requests
Remove the entries where path is not at least readable */ * Remove the entries where path is not at least readable
* @param string $module The module to use
* @param string $user The user to get the rights
*/
public function userrightsget ($module, $user) public function userrightsget ($module, $user)
{ {
// if (isset ($_SESSION["domframework"]["authzgroups"][$module][$user])) // if (isset ($_SESSION["domframework"]["authzgroups"][$module][$user]))
@@ -103,7 +111,11 @@ class authzgroups
return $res; return $res;
} }
/** Return the right defined for this user in the module for one object */ /** Return the right defined for this user in the module for one object
* @param string $module The module to use
* @param string $user The user to get the rights
* @param string $object The object to return the rights for the user
*/
public function allow ($module, $user, $object) public function allow ($module, $user, $object)
{ {
$ressource = $this->userrightsget ($module, $user); $ressource = $this->userrightsget ($module, $user);
@@ -133,8 +145,12 @@ class authzgroups
} }
/** Return TRUE if the user right allow to see the object (RO or RW) /** Return TRUE if the user right allow to see the object (RO or RW)
Return a 403 Exception if the user don't have the right * Return a 403 Exception if the user don't have the right
Return a 401 Exception if the user is not connected */ * Return a 401 Exception if the user is not connected
* @param string $module The module to use
* @param string $user The user to get the rights
* @param string $object The object to check the rights for the user
*/
public function accessRight ($module, $user, $object) public function accessRight ($module, $user, $object)
{ {
if ($this->dbObject === null) if ($this->dbObject === null)
@@ -164,8 +180,12 @@ class authzgroups
} }
/** Return TRUE if the user right allow to edit the object (RW only) /** Return TRUE if the user right allow to edit the object (RW only)
Return a 403 Exception if the user don't have the right * Return a 403 Exception if the user don't have the right
Return a 401 Exception if the user is not connected */ * Return a 401 Exception if the user is not connected
* @param string $module The module to use
* @param string $user The user to get the rights
* @param string $object The object to check the rights for the user
*/
public function accessWrite ($module, $user, $object) public function accessWrite ($module, $user, $object)
{ {
if ($this->dbObject === null) if ($this->dbObject === null)
@@ -196,9 +216,13 @@ class authzgroups
} }
/** Return TRUE if the user right allow to see but without modification /** Return TRUE if the user right allow to see but without modification
the object (RO only) * the object (RO only)
Return a 403 Exception if the user don't have the right * Return a 403 Exception if the user don't have the right
Return a 401 Exception if the user is not connected */ * Return a 401 Exception if the user is not connected
* @param string $module The module to use
* @param string $user The user to get the rights
* @param string $object The object to check the rights for the user
*/
public function accessReadOnly ($module, $user, $object) public function accessReadOnly ($module, $user, $object)
{ {
if ($this->dbObject === null) if ($this->dbObject === null)
@@ -226,10 +250,18 @@ class authzgroups
401); 401);
throw new Exception (dgettext("domframework", "Access forbidden"), 403); throw new Exception (dgettext("domframework", "Access forbidden"), 403);
} }
///////////////////////// /////////////////////////
// DATABASE STORAGE // // DATABASE STORAGE //
///////////////////////// /////////////////////////
/** Connect to the database before using it */ /** Connect to the database before using it
* @param string $dsn The DSN to use to connect to the database
* @param string|null $username The username to use to connect to the
* database
* @param string|null $password The password to use to connect to the
* database
* @param array|null $driver_options The options to pass to PDO driver
*/
public function connect ($dsn, $username=null, $password=null, public function connect ($dsn, $username=null, $password=null,
$driver_options=null) $driver_options=null)
{ {
@@ -329,13 +361,15 @@ class authzgroups
return TRUE; return TRUE;
} }
/** Disconnect from the database. Should be only used in the unit tests */ /** Disconnect from the database. Should be only used in the unit tests
*/
public function disconnect () public function disconnect ()
{ {
$this->dbObject->disconnect (); $this->dbObject->disconnect ();
} }
/** Create the tables in the database to store the data */ /** Create the tables in the database to store the data
*/
public function createTables () public function createTables ()
{ {
if ($this->dbObject == null) if ($this->dbObject == null)
@@ -371,7 +405,11 @@ class authzgroups
// OBJECTS // // OBJECTS //
///////////////// /////////////////
/** Add a new object to object list /** Add a new object to object list
Return the idobject created */ * Return the idobject created
* @param string $module The module to use
* @param string $object The object to create
* @param string|null $comment The comment to save
*/
public function objectAdd ($module, $object, $comment="") public function objectAdd ($module, $object, $comment="")
{ {
if ($this->dbObject == null) if ($this->dbObject == null)
@@ -384,7 +422,10 @@ class authzgroups
"comment"=>$comment)); "comment"=>$comment));
} }
/** Remove an object from database and all the rights using it */ /** Remove an object from database and all the rights using it
* @param string $module The module to use
* @param string $object The object to delete
*/
public function objectDel ($module, $object) public function objectDel ($module, $object)
{ {
if ($this->dbObject == null) if ($this->dbObject == null)
@@ -398,7 +439,10 @@ class authzgroups
return $this->dbObject->delete ($idobjects[0]["idobject"]); return $this->dbObject->delete ($idobjects[0]["idobject"]);
} }
/** Remove an object from database and all the rights using it */ /** Remove an object from database and all the rights using it
* @param string $module The module to use
* @param integer $idobject The object to delete
*/
public function objectDelByID ($module, $idobject) public function objectDelByID ($module, $idobject)
{ {
if ($this->dbObject == null) if ($this->dbObject == null)
@@ -412,7 +456,12 @@ class authzgroups
return $this->dbObject->delete ($idobjects[0]["idobject"]); return $this->dbObject->delete ($idobjects[0]["idobject"]);
} }
/** Update an object in the database */ /** Update an object in the database
* @param string $module The module to use
* @param string $object The object to update
* @param string $newobject The new name of the object
* @param string|null $newcomment The new comment of the object
*/
public function objectUpdate ($module, $object, $newobject, $newcomment="") public function objectUpdate ($module, $object, $newobject, $newcomment="")
{ {
if ($this->dbObject == null) if ($this->dbObject == null)
@@ -428,7 +477,12 @@ class authzgroups
"comment"=>$newcomment)); "comment"=>$newcomment));
} }
/** Update an object in the database */ /** Update an object in the database
* @param string $module The module to use
* @param integer $idobject The object to update
* @param string $newobject The new name of the object
* @param string|null $newcomment The new comment of the object
*/
public function objectUpdateByID ($module, $idobject, $newobject, public function objectUpdateByID ($module, $idobject, $newobject,
$newcomment="") $newcomment="")
{ {
@@ -446,7 +500,10 @@ class authzgroups
} }
/** Return an array with all the available objects in the module, or only /** Return an array with all the available objects in the module, or only
one object if $object is provided */ * one object if $object is provided
* @param string $module The module to use
* @param string $object The name of the object to get
*/
public function objectRead ($module, $object=null) public function objectRead ($module, $object=null)
{ {
if ($this->dbObject == null) if ($this->dbObject == null)
@@ -459,7 +516,10 @@ class authzgroups
} }
/** Return an array with all the available objects in the module, or only /** Return an array with all the available objects in the module, or only
one object if $object is provided */ * one object if $object is provided
* @param string $module The module to use
* @param integer $idobject The name of the object to get
*/
public function objectReadByID ($module, $idobject=null) public function objectReadByID ($module, $idobject=null)
{ {
if ($this->dbObject == null) if ($this->dbObject == null)
@@ -472,14 +532,18 @@ class authzgroups
} }
/** Return an array containing the titles of the table translating in the user /** Return an array containing the titles of the table translating in the user
language */ * language
*/
public function objectTitles () public function objectTitles ()
{ {
return $this->dbObject->titles; return $this->dbObject->titles;
} }
/** Check if the provided data are compilant with the object specification /** Check if the provided data are compliant with the object specification
@return array The errors found in the data */ * @param array $data The name of the object to get
* @param integer|null $idobject The object to check
* @return array The errors found in the data
*/
public function objectVerify ($data, $idobject=false) public function objectVerify ($data, $idobject=false)
{ {
return $this->dbObject->verify ($data, $idobject); return $this->dbObject->verify ($data, $idobject);
@@ -489,7 +553,11 @@ class authzgroups
// GROUPS // // GROUPS //
//////////////// ////////////////
/** Add a new group to group list /** Add a new group to group list
Return the idgroup created */ * Return the idgroup created
* @param string $module The module to use
* @param string $group The group to create
* @param string|null $comment The comment to add with the group
*/
public function groupAdd ($module, $group, $comment="") public function groupAdd ($module, $group, $comment="")
{ {
if ($this->dbGroup == null) if ($this->dbGroup == null)
@@ -501,7 +569,10 @@ class authzgroups
"comment"=>$comment)); "comment"=>$comment));
} }
/** Remove an group from database and all the rights using it */ /** Remove an group from database and all the rights using it
* @param string $module The module to use
* @param string $group The group to delete
*/
public function groupDel ($module, $group) public function groupDel ($module, $group)
{ {
if ($this->dbGroup == null) if ($this->dbGroup == null)
@@ -514,7 +585,10 @@ class authzgroups
return $this->dbGroup->delete ($idgroups[0]["idgroup"]); return $this->dbGroup->delete ($idgroups[0]["idgroup"]);
} }
/** Remove an group from database and all the rights using it */ /** Remove an group from database and all the rights using it
* @param string $module The module to use
* @param integer $idgroup The group to delete
*/
public function groupDelByID ($module, $idgroup) public function groupDelByID ($module, $idgroup)
{ {
if ($this->dbGroup == null) if ($this->dbGroup == null)
@@ -527,7 +601,12 @@ class authzgroups
return $this->dbGroup->delete ($idgroups[0]["idgroup"]); return $this->dbGroup->delete ($idgroups[0]["idgroup"]);
} }
/** Update an group in the database */ /** Update an group in the database
* @param string $module The module to use
* @param string $group The group to update
* @param string $newgroup The new group name
* @param string|null $comment The comment for the group
*/
public function groupUpdate ($module, $group, $newgroup, $comment="") public function groupUpdate ($module, $group, $newgroup, $comment="")
{ {
if ($this->dbGroup == null) if ($this->dbGroup == null)
@@ -541,7 +620,13 @@ class authzgroups
array ("group"=>$newgroup, array ("group"=>$newgroup,
"comment"=>$comment)); "comment"=>$comment));
} }
/** Update an group in the database */
/** Update an group in the database
* @param string $module The module to use
* @param integer $idgroup The group to update
* @param string $newgroup The new group name
* @param string|null $comment The comment for the group
*/
public function groupUpdateByID ($module, $idgroup, $newgroup, $comment="") public function groupUpdateByID ($module, $idgroup, $newgroup, $comment="")
{ {
if ($this->dbGroup == null) if ($this->dbGroup == null)
@@ -556,7 +641,10 @@ class authzgroups
"comment"=>$comment)); "comment"=>$comment));
} }
/** Return an array with all the available groups in the module */ /** Return an array with all the available groups in the module
* @param string $module The module to use
* @param string|null $group The group to check if exists
*/
public function groupRead ($module, $group=null) public function groupRead ($module, $group=null)
{ {
if ($this->dbGroup == null) if ($this->dbGroup == null)
@@ -568,6 +656,11 @@ class authzgroups
return $this->dbGroup->read ($select, null, array (array ("group", "ASC"))); return $this->dbGroup->read ($select, null, array (array ("group", "ASC")));
} }
/** Return an array with all the available groups in the module
* @param string $module The module to use
* @param integer $idgroup The group to check if exists
*/
public function groupReadByID ($module, $idgroup) public function groupReadByID ($module, $idgroup)
{ {
if ($this->dbGroup == null) if ($this->dbGroup == null)
@@ -579,14 +672,18 @@ class authzgroups
} }
/** Return an array containing the titles of the table translating in the user /** Return an array containing the titles of the table translating in the user
language */ * language
*/
public function groupTitles () public function groupTitles ()
{ {
return $this->dbGroup->titles; return $this->dbGroup->titles;
} }
/** Check if the provided data are compilant with the group specification /** Check if the provided data are compilant with the group specification
@return array The errors found in the data */ * @param array $data The data to check
* @param integer|null $idgroup The idgroup to check
* @return array The errors found in the data
*/
public function groupVerify ($data, $idgroup=false) public function groupVerify ($data, $idgroup=false)
{ {
return $this->dbGroup->verify ($data, $idgroup); return $this->dbGroup->verify ($data, $idgroup);
@@ -596,7 +693,12 @@ class authzgroups
// GROUP MEMBER // // GROUP MEMBER //
////////////////////// //////////////////////
/** Add a new groupmember to groupmember list /** Add a new groupmember to groupmember list
Return the idgroupmember created */ * Return the idgroupmember created
* @param string $module The module to use
* @param string $group The group to use
* @param string $user The user to add in group
* @param string|null $comment The comment to save
*/
public function groupmemberAdd ($module, $group, $user, $comment="") public function groupmemberAdd ($module, $group, $user, $comment="")
{ {
if ($this->dbGroupMember == null) if ($this->dbGroupMember == null)
@@ -614,7 +716,11 @@ class authzgroups
"comment"=>$comment)); "comment"=>$comment));
} }
/** Remove an groupmember from database and all the rights using it */ /** Remove an groupmember from database and all the rights using it
* @param string $module The module to use
* @param string $group The group to use
* @param string $user The user to remove
*/
public function groupmemberDel ($module, $group, $user) public function groupmemberDel ($module, $group, $user)
{ {
if ($this->dbGroupMember == null) if ($this->dbGroupMember == null)
@@ -635,7 +741,11 @@ class authzgroups
return $this->dbGroupMember->delete ($groupsMembers[0]["idgroupmember"]); return $this->dbGroupMember->delete ($groupsMembers[0]["idgroupmember"]);
} }
/** Remove an groupmember from database and all the rights using it */ /** Remove an groupmember from database and all the rights using it
* @param string $module The module to use
* @param integer $idgroup The group to use
* @param integer $idgroupmember The user to remove
*/
public function groupmemberDelByID ($module, $idgroup, $idgroupmember) public function groupmemberDelByID ($module, $idgroup, $idgroupmember)
{ {
if ($this->dbGroupMember == null) if ($this->dbGroupMember == null)
@@ -656,14 +766,25 @@ class authzgroups
return $this->dbGroupMember->delete ($groupsMembers[0]["idgroupmember"]); return $this->dbGroupMember->delete ($groupsMembers[0]["idgroupmember"]);
} }
/** Update an groupmember in the database */ /** Update an groupmember in the database
* @param string $module The module to use
* @param string $group The group to use
* @param string $user The user to update
* @param string|null $comment The comment to update
*/
public function groupmemberUpdate ($module, $group, $user, $comment="") public function groupmemberUpdate ($module, $group, $user, $comment="")
{ {
$this->rightCache = null; $this->rightCache = null;
die ("This function is not available : contact us if you need it\n"); die ("This function is not available : contact us if you need it\n");
} }
/** Update an groupmember in the database */ /** Update an groupmember in the database
* @param string $module The module to use
* @param integer $idgroup The group to use
* @param integer $iduser The user to update
* @param string $user The new user name
* @param string|null $comment The comment to update
*/
public function groupmemberUpdateByID ($module, $idgroup, $iduser, $user, public function groupmemberUpdateByID ($module, $idgroup, $iduser, $user,
$comment="") $comment="")
{ {
@@ -679,6 +800,8 @@ class authzgroups
/** Return an array with all the groups where the user is in and in the module /** Return an array with all the groups where the user is in and in the module
* @param string $module The module to use
* @param string $user The user to search
*/ */
public function groupmemberReadUser ($module, $user) public function groupmemberReadUser ($module, $user)
{ {
@@ -703,6 +826,8 @@ class authzgroups
} }
/** Return an array with all the groups where the user is in and in the module /** Return an array with all the groups where the user is in and in the module
* @param string $module The module to use
* @param integer $idgroupmember The user to search
*/ */
public function groupmemberReadUserByID ($module, $idgroupmember) public function groupmemberReadUserByID ($module, $idgroupmember)
{ {
@@ -727,7 +852,10 @@ class authzgroups
} }
/** Return an array with all the available users in the group and in the /** Return an array with all the available users in the group and in the
module */ * module
* @param string $module The module to use
* @param string $group The group to search
*/
public function groupmemberReadGroup ($module, $group) public function groupmemberReadGroup ($module, $group)
{ {
if ($this->dbGroupMember == null) if ($this->dbGroupMember == null)
@@ -743,7 +871,10 @@ class authzgroups
} }
/** Return an array with all the available users in the group and in the /** Return an array with all the available users in the group and in the
module */ * module
* @param string $module The module to use
* @param integer $idgroup The group to search
*/
public function groupmemberReadGroupByID ($module, $idgroup) public function groupmemberReadGroupByID ($module, $idgroup)
{ {
if ($this->dbGroupMember == null) if ($this->dbGroupMember == null)
@@ -759,6 +890,9 @@ class authzgroups
} }
/** Return an array containing the information of a user in a specific group /** Return an array containing the information of a user in a specific group
* @param string $module The module to use
* @param integer $idgroup The group to search
* @param integer $iduser The user to search
*/ */
public function groupmemberReadUserDataByID ($module, $idgroup, $iduser) public function groupmemberReadUserDataByID ($module, $idgroup, $iduser)
{ {
@@ -776,14 +910,18 @@ class authzgroups
} }
/** Return an array containing the titles of the table translating in the user /** Return an array containing the titles of the table translating in the user
language */ * language
*/
public function groupmembersTitles () public function groupmembersTitles ()
{ {
return $this->dbGroupMember->titles; return $this->dbGroupMember->titles;
} }
/** Check if the provided data are compilant with the group specification /** Check if the provided data are compilant with the group specification
@return array The errors found in the data */ * @param array $data The data to check
* @param integer|null $idgroupmember The group member associated to verify
* @return array The errors found in the data
*/
public function groupmembersVerify ($data, $idgroupmember=false) public function groupmembersVerify ($data, $idgroupmember=false)
{ {
return $this->dbGroupMember->verify ($data, $idgroupmember); return $this->dbGroupMember->verify ($data, $idgroupmember);
@@ -793,7 +931,13 @@ class authzgroups
// RIGHTS // // RIGHTS //
//////////////// ////////////////
/** Add a new right to right list /** Add a new right to right list
Return the idright created */ * Return the idright created
* @param string $module The module to use
* @param string $group The group to use
* @param string $object The object to use
* @param string $right The right to add
* @param string|null $comment The comment to add
*/
public function rightAdd ($module, $group, $object, $right, $comment="") public function rightAdd ($module, $group, $object, $right, $comment="")
{ {
if ($this->dbRight == null) if ($this->dbRight == null)
@@ -822,8 +966,15 @@ class authzgroups
"right"=>$right, "right"=>$right,
"comment"=>$comment)); "comment"=>$comment));
} }
/** Add a new right to right list by ID /** Add a new right to right list by ID
Return the idright created */ * Return the idright created
* @param string $module The module to use
* @param integer $idgroup The group to use
* @param integer $idobject The object to use
* @param integer $idright The right to add
* @param string|null $comment The comment to add
*/
public function rightAddByID ($module, $idgroup, $idobject, $idright, public function rightAddByID ($module, $idgroup, $idobject, $idright,
$comment="") $comment="")
{ {
@@ -854,8 +1005,11 @@ class authzgroups
"comment"=>$comment)); "comment"=>$comment));
} }
/** Remove an right from database and all the rights using it
/** Remove an right from database and all the rights using it */ * @param string $module The module to use
* @param string $group The group to use
* @param string $object The object to remove the rights
*/
public function rightDel ($module, $group, $object) public function rightDel ($module, $group, $object)
{ {
if ($this->dbRight == null) if ($this->dbRight == null)
@@ -869,7 +1023,10 @@ class authzgroups
return $this->dbRight->delete ($idrights[0]["idright"]); return $this->dbRight->delete ($idrights[0]["idright"]);
} }
/** Remove an right from database by ID and all the rights using it */ /** Remove an right from database by ID and all the rights using it
* @param string $module The module to use
* @param integer $idright The idright to be deleted
*/
public function rightDelByID ($module, $idright) public function rightDelByID ($module, $idright)
{ {
if ($this->dbRight == null) if ($this->dbRight == null)
@@ -883,7 +1040,13 @@ class authzgroups
return $this->dbRight->delete ($idrights[0]["idright"]); return $this->dbRight->delete ($idrights[0]["idright"]);
} }
/** Update a right in the database */ /** Update a right in the database
* @param string $module The module to use
* @param string $group The group to update the right
* @param string $object The object ot update the right
* @param string $newright The new right to save
* @param string|null $newcomment The new comment to save
*/
public function rightUpdate ($module, $group, $object, $newright, public function rightUpdate ($module, $group, $object, $newright,
$newcomment="") $newcomment="")
{ {
@@ -909,7 +1072,13 @@ class authzgroups
"comment"=>$newcomment)); "comment"=>$newcomment));
} }
/** Update a right by ID in the database */ /** Update a right by ID in the database
* @param string $module The module to use
* @param integer $idright The idright to update the right
* @param integer $newidobject The object ot update the right
* @param integer $newright The new right to save
* @param string|null $newcomment The new comment to save
*/
public function rightUpdateByID ($module, $idright, $newidobject, $newright, public function rightUpdateByID ($module, $idright, $newidobject, $newright,
$newcomment="") $newcomment="")
{ {
@@ -938,7 +1107,11 @@ class authzgroups
/** Return an array with all the available rights in the module, for a group, /** Return an array with all the available rights in the module, for a group,
and concerning an object */ * and concerning an object
* @param string $module The module to use
* @param string $group The group to get the rights
* @param string $object The object to get the rights
*/
public function rightRead ($module, $group, $object) public function rightRead ($module, $group, $object)
{ {
if ($this->dbRight == null) if ($this->dbRight == null)
@@ -957,7 +1130,10 @@ class authzgroups
return $this->dbRight->read ($select); return $this->dbRight->read ($select);
} }
/** Return an array with all the available rights for a module and a group */ /** Return an array with all the available rights for a module and a group
* @param string $module The module to use
* @param string $group The group to get the rights
*/
public function rightReadByGroup ($module, $group) public function rightReadByGroup ($module, $group)
{ {
if ($this->dbRight == null) if ($this->dbRight == null)
@@ -970,7 +1146,10 @@ class authzgroups
return $this->rightReadByGroupByID ($module, $objects[0]["idgroup"]); return $this->rightReadByGroupByID ($module, $objects[0]["idgroup"]);
} }
/** Return an array with all the available rights for a module and a group */ /** Return an array with all the available rights for a module and a group
* @param string $module The module to use
* @param integer $idgroup The group to get the rights
*/
public function rightReadByGroupByID ($module, $idgroup) public function rightReadByGroupByID ($module, $idgroup)
{ {
if ($this->dbRight == null) if ($this->dbRight == null)
@@ -981,7 +1160,10 @@ class authzgroups
} }
/** Return an array with all the information concerning a right selected by /** Return an array with all the information concerning a right selected by
ID*/ * @param string $module The module to use
* @param integer $idright The right to search
* ID
*/
public function rightReadByID ($module, $idright) public function rightReadByID ($module, $idright)
{ {
if ($this->dbRight == null) if ($this->dbRight == null)
@@ -992,6 +1174,8 @@ class authzgroups
} }
/** Return an array with all the available rights for a module and an object /** Return an array with all the available rights for a module and an object
* @param string $module The module to use
* @param string $object The object to search
*/ */
public function rightReadByObject ($module, $object) public function rightReadByObject ($module, $object)
{ {
@@ -1007,32 +1191,40 @@ class authzgroups
} }
/** Return an array with all the available rights for a module and an idobject /** Return an array with all the available rights for a module and an idobject
* @param string $module The module to use
* @param integer $idobject The object to search
*/ */
public function rightReadByObjectByID ($module, $idobject) public function rightReadByObjectByID ($module, $idobject)
{ {
if ($this->dbRight == null) if ($this->dbRight == null)
throw new Exception (dgettext ("domframework", throw new Exception (dgettext ("domframework",
"DB for Right is not connected"), 500); "DB for Right is not connected"), 500);
// FIXME : Do not use $module ?
$select[] = array ("idobject", $idobject); $select[] = array ("idobject", $idobject);
return $this->dbRight->read ($select); return $this->dbRight->read ($select);
} }
/** Return an array containing the titles of the table translating in the user /** Return an array containing the titles of the table translating in the user
language */ * language
*/
public function rightTitles () public function rightTitles ()
{ {
return $this->dbRight->titles; return $this->dbRight->titles;
} }
/** Return all the types of rights available (RO and RW) */ /** Return all the types of rights available (RO and RW)
*/
public function rightTypes () public function rightTypes ()
{ {
return array ("1"=>"RO", "2"=>"RW"); return array ("1"=>"RO", "2"=>"RW");
} }
/** Check if the provided data are compilant with the group specification /** Check if the provided data are compilant with the group specification
@return array The errors found in the data */ * @param array $data The data of the right to check
* @param integer $idright The right to search
* @return array The errors found in the data
*/
public function rightVerify ($data, $idright=false) public function rightVerify ($data, $idright=false)
{ {
return $this->dbRight->verify ($data, $idright); return $this->dbRight->verify ($data, $idright);

23
cli.php
View File

@@ -7,12 +7,13 @@
class cli class cli
{ {
/** Run in CLI mode with parameters /** Run in CLI mode with parameters
Example of cli code : * Example of cli code :
#!/usr/bin/php5 * #!/usr/bin/php5
<?php * <?php
require ("domframework/cli.php"); * require ("domframework/cli.php");
$cli = new cli; * $cli = new cli;
$cli->run(); */ * $cli->run();
*/
/** The expert mode allow to see/execute the models */ /** The expert mode allow to see/execute the models */
private $EXPERT = false; private $EXPERT = false;
@@ -29,7 +30,12 @@ class cli
set_error_handler(array(&$this, "cliErrorHandler")); set_error_handler(array(&$this, "cliErrorHandler"));
} }
/** The error handler for CLI : display error in STDERR */ /** The error handler for CLI : display error in STDERR
* @param integer $errno The error type
* @param string $errstr The string to send in error
* @param string $errfile The error file which generate the error
* @param integer $errline The line with an error
*/
public function cliErrorHandler ($errno, $errstr, $errfile, $errline) public function cliErrorHandler ($errno, $errstr, $errfile, $errline)
{ {
if (!(error_reporting() & $errno)) if (!(error_reporting() & $errno))
@@ -66,7 +72,8 @@ class cli
} }
} }
/** The real application launcher and helpers */ /** The real application launcher and helpers
*/
public function run () public function run ()
{ {
global $argv; global $argv;

View File

@@ -6,22 +6,22 @@
require_once ("domframework/form.php"); require_once ("domframework/form.php");
/** Manage the configurations of the module done by administrator in a config /** Manage the configurations of the module done by administrator in a config
file * file
It is based on the module configuration defaults * It is based on the module configuration defaults
The DocType allow to define the configuration HTML page. It must contains * The DocType allow to define the configuration HTML page. It must contains
@param : the name of the parameter * @param : the name of the parameter
@description : the textual description of the parameter * @description : the textual description of the parameter
@type : the type of the parameter (string, integer, array) * @type : the type of the parameter (string, integer, array)
@values : an array containing the allowed values to the parameter. Can be * @values : an array containing the allowed values to the parameter. Can be
a function like timezone_identifiers_list * a function like timezone_identifiers_list
@default : the default value (can be an array or a string or a number) * @default : the default value (can be an array or a string or a number)
@group : Group all the parameters in a group * @group : Group all the parameters in a group
POC : * POC :
$config = new config(); * $config = new config();
$config->default = array ("param"=>"default", * $config->default = array ("param"=>"default",
"param2"=>array (1,2,3), * "param2"=>array (1,2,3),
"param3"=>null); * "param3"=>null);
$var = $config->get ("param"); * $var = $config->get ("param");
*/ */
class config class config
{ {
@@ -30,7 +30,8 @@ class config
/** Use the .php to protect the information */ /** Use the .php to protect the information */
public $confFile = null; public $confFile = null;
/** Select the configuration file */ /** Select the configuration file
*/
public function selectConfFile () public function selectConfFile ()
{ {
if ($this->confFile !== null) if ($this->confFile !== null)
@@ -45,14 +46,16 @@ class config
$this->confFile = "./data/configuration.php"; $this->confFile = "./data/configuration.php";
} }
/** List all the parameters configurable in the software */ /** List all the parameters configurable in the software
*/
public function params () public function params ()
{ {
$this->selectConfFile (); $this->selectConfFile ();
return $this->default; return $this->default;
} }
/** Return the defined values */ /** Return the defined values
*/
public function getAll () public function getAll ()
{ {
$this->selectConfFile (); $this->selectConfFile ();
@@ -64,8 +67,9 @@ class config
} }
/** Get the value of the provided parameter recorded in .php file /** Get the value of the provided parameter recorded in .php file
If it is not set in .php file, use the default value * If it is not set in .php file, use the default value
@param string $param The option name to be returned */ * @param string $param The option name to be returned
*/
public function get ($param) public function get ($param)
{ {
$this->selectConfFile (); $this->selectConfFile ();
@@ -125,10 +129,11 @@ class config
} }
/** Define a value for the parameter in the config file. Add all the default /** Define a value for the parameter in the config file. Add all the default
values if they are not defined * values if they are not defined
@param string $param The option name * @param string $param The option name
@param mixed $value The option value * @param mixed $value The option value
@return TRUE if the parameter is saved or an exception */ * @return TRUE if the parameter is saved or an exception
*/
public function set ($param, $value) public function set ($param, $value)
{ {
$this->selectConfFile (); $this->selectConfFile ();
@@ -171,9 +176,10 @@ class config
} }
/** Display the $values in PHP format to be "require" easily /** Display the $values in PHP format to be "require" easily
@param mixed $values Values to be recorded * @param mixed $values Values to be recorded
@param string $phpcode Actual value of the php code * @param string $phpcode Actual value of the php code
@param integer $indent Number of spaces in the indentation of config */ * @param integer $indent Number of spaces in the indentation of config
*/
private function writePHP ($values, $phpcode, $indent) private function writePHP ($values, $phpcode, $indent)
{ {
foreach ($values as $key=>$val) foreach ($values as $key=>$val)
@@ -207,7 +213,9 @@ class config
return $phpcode; return $phpcode;
} }
/** Convert a string to the right PHP type, without using the eval function */ /** Convert a string to the right PHP type, without using the eval function
* @param string $values The string to convert
*/
private function strToType ($values) private function strToType ($values)
{ {
$values = str_replace ("array (", "array(", $values); $values = str_replace ("array (", "array(", $values);
@@ -260,7 +268,9 @@ class config
} }
/** Return an array containing the definitions read from the default config /** Return an array containing the definitions read from the default config
file */ * file
* @param string $modelFile The file model to read
*/
public function docComment ($modelFile) public function docComment ($modelFile)
{ {
$debug = 0; $debug = 0;

View File

@@ -17,14 +17,20 @@
/** DBJSON : a NoSQL DB in JSON */ /** DBJSON : a NoSQL DB in JSON */
class dbjson class dbjson
{ {
/** The DSN of the connection */
private $dsn = ""; private $dsn = "";
/** The database file */
private $dbfile = ""; private $dbfile = "";
/** The lock file */
private $dbfileLock = ""; private $dbfileLock = "";
/** The last Insert Id */
private $lastInsertId = 0; private $lastInsertId = 0;
// The database content /** The database content */
private $db; private $db;
/** The constructor */ /** The constructor
* @param string $dsn The DSN of the connection
*/
public function __construct ($dsn) public function __construct ($dsn)
{ {
if (! function_exists ("openssl_random_pseudo_bytes")) if (! function_exists ("openssl_random_pseudo_bytes"))
@@ -80,7 +86,7 @@ class dbjson
/** Store multiple documents in database /** Store multiple documents in database
* @param string $collection The collection name * @param string $collection The collection name
* @param array documents array(array ()) * @param array $documents array(array ())
* @return integer The number of documents inserted in the database * @return integer The number of documents inserted in the database
*/ */
public function insertMany ($collection, $documents) public function insertMany ($collection, $documents)
@@ -414,7 +420,6 @@ class dbjson
} }
/** Write the dbfile with the provided data. This function don't do locks ! /** Write the dbfile with the provided data. This function don't do locks !
* @param array $data The database to store
* @return bool True if the recording is OK, false if there is a problem * @return bool True if the recording is OK, false if there is a problem
*/ */
private function writeDB () private function writeDB ()

View File

@@ -111,11 +111,12 @@ class dblayer
private static $instance = array (); private static $instance = array ();
/** Connection to the database engine /** Connection to the database engine
See http://fr2.php.net/manual/en/pdo.construct.php for the $dsn format * See http://fr2.php.net/manual/en/pdo.construct.php for the $dsn format
@param string $dsn PDO Data Source Name * @param string $dsn PDO Data Source Name
@param string|null $username Username to connect * @param string|null $username Username to connect
@param string|null $password Password to connect * @param string|null $password Password to connect
@param string|null $driver_options Driver options to the database */ * @param string|null $driver_options Driver options to the database
*/
public function __construct ($dsn, $username=null, $password=null, public function __construct ($dsn, $username=null, $password=null,
$driver_options=null) $driver_options=null)
{ {
@@ -229,7 +230,8 @@ class dblayer
return self::$instance[$this->dsn]; return self::$instance[$this->dsn];
} }
/** Return the connected database name from DSN used to connect */ /** Return the connected database name from DSN used to connect
*/
public function databasename () public function databasename ()
{ {
if ($this->sep === "") if ($this->sep === "")
@@ -247,7 +249,8 @@ class dblayer
return NULL; return NULL;
} }
/** Return all the tables available in the database */ /** Return all the tables available in the database
*/
public function listTables () public function listTables ()
{ {
if ($this->sep === "") if ($this->sep === "")
@@ -291,9 +294,9 @@ class dblayer
} }
/** Verify if the provided data can be inserted/updated in the database. /** Verify if the provided data can be inserted/updated in the database.
@param array $data An array containing the data to verify with keys * @param array $data An array containing the data to verify with keys
@param mixed|null $updatekey the key to update * @param mixed|null $updatekey the key to update
@return an array with the errors in array($key=>array($priority,$message)) * @return an array with the errors in array($key=>array($priority,$message))
*/ */
public function verify ($data, $updatekey=false) public function verify ($data, $updatekey=false)
{ {
@@ -589,7 +592,8 @@ class dblayer
} }
/** Insert a new line of data in the table. Datas must be an indexed array /** Insert a new line of data in the table. Datas must be an indexed array
@param array $data Datas to be recorded (column=>value)*/ * @param array $data Datas to be recorded (column=>value)
*/
public function insert ($data) public function insert ($data)
{ {
if ($this->debug) echo "== Entering insert\n"; if ($this->debug) echo "== Entering insert\n";
@@ -867,11 +871,12 @@ class dblayer
} }
/** Update the key tuple with the provided data /** Update the key tuple with the provided data
Return the number of rows modified * Return the number of rows modified
@param string|integer $updatekey The key applied on primary key to be * @param string|integer $updatekey The key applied on primary key to be
updated * updated
@param array $data The values to be updated * @param array $data The values to be updated
@return the number of lines modified */ * @return the number of lines modified
*/
public function update ($updatekey, $data) public function update ($updatekey, $data)
{ {
if ($this->debug) echo "== Entering update\n"; if ($this->debug) echo "== Entering update\n";
@@ -971,8 +976,9 @@ class dblayer
} }
/** Delete a tuple identified by its primary key /** Delete a tuple identified by its primary key
Return the number of deleted rows (can be 0 !) * Return the number of deleted rows (can be 0 !)
@param string|integer $deletekey The key of primary key to be deleted */ * @param string|integer $deletekey The key of primary key to be deleted
*/
public function delete ($deletekey) public function delete ($deletekey)
{ {
if ($this->debug) echo "== Entering delete\n"; if ($this->debug) echo "== Entering delete\n";
@@ -1004,7 +1010,8 @@ class dblayer
return $nbLinesDeleted; return $nbLinesDeleted;
} }
/** Translation of fields */ /** Translation of fieldsi
*/
public function titles () public function titles ()
{ {
if ($this->debug) echo "== Entering titles\n"; if ($this->debug) echo "== Entering titles\n";
@@ -1024,7 +1031,8 @@ class dblayer
return $arr; return $arr;
} }
/** Drop the table */ /** Drop the table
*/
public function dropTable () public function dropTable ()
{ {
if ($this->debug) echo "== Entering dropTables\n"; if ($this->debug) echo "== Entering dropTables\n";
@@ -1040,21 +1048,21 @@ class dblayer
} }
/** Create the table defined by the differents fields. /** Create the table defined by the differents fields.
Define the SQL syntax based on SQL engines * Define the SQL syntax based on SQL engines
$table = "dns zones"; * $table = "dns zones";
$fields = array ( * $fields = array (
"id"=>array ("integer", "not null", "autoincrement"), * "id"=>array ("integer", "not null", "autoincrement"),
"zo ne"=>array ("varchar", "255", "not null"), * "zo ne"=>array ("varchar", "255", "not null"),
"vie wname"=>array ("varchar", "255"), * "vie wname"=>array ("varchar", "255"),
"view clients"=>array ("varchar", "255"), * "view clients"=>array ("varchar", "255"),
"comme nt"=>array ("varchar", "1024"), * "comme nt"=>array ("varchar", "1024"),
"opendate"=>array ("datetime", "not null"), * "opendate"=>array ("datetime", "not null"),
"closedate"=>array ("datetime"), * "closedate"=>array ("datetime"),
); * );
$primary = "id"; * $primary = "id";
$unique = array ("id", array ("zo ne", "vie wname")); * $unique = array ("id", array ("zo ne", "vie wname"));
$foreign = array ("zone"=>"table.field",...); * $foreign = array ("zone"=>"table.field",...);
*/ */
public function createTable () public function createTable ()
{ {
if ($this->debug) echo "== Entering createTable\n"; if ($this->debug) echo "== Entering createTable\n";
@@ -1366,7 +1374,9 @@ class dblayer
} }
/** This function permit to send a SQL request to the database to do a SELECT /** This function permit to send a SQL request to the database to do a SELECT
Return the an array with the data */ * Return the an array with the data
* @param string $sql A valid SQL request to be execute
*/
public function directRead ($sql) public function directRead ($sql)
{ {
if ($this->debug) echo "== Entering directRead\n"; if ($this->debug) echo "== Entering directRead\n";
@@ -1381,50 +1391,58 @@ class dblayer
} }
/** This function disconnect the database. It is normally only used in phpunit /** This function disconnect the database. It is normally only used in phpunit
unit tests */ * unit tests
*/
public function disconnect () public function disconnect ()
{ {
unset (self::$instance[$this->dsn]); unset (self::$instance[$this->dsn]);
} }
/** The prepare method */ /** The prepare method
* @param string $statement The valid template to be replaced
* @param array|null $driver_options The replacement to be done
*/
public function prepare ($statement, $driver_options = array()) public function prepare ($statement, $driver_options = array())
{ {
return self::$instance[$this->dsn]->prepare ($statement, $driver_options); return self::$instance[$this->dsn]->prepare ($statement, $driver_options);
} }
/** Start a new Transaction */ /** Start a new Transaction
*/
public function beginTransaction () public function beginTransaction ()
{ {
return self::$instance[$this->dsn]->beginTransaction (); return self::$instance[$this->dsn]->beginTransaction ();
} }
/** Commit (validate) a transaction */ /** Commit (validate) a transaction
*/
public function commit () public function commit ()
{ {
return self::$instance[$this->dsn]->commit (); return self::$instance[$this->dsn]->commit ();
} }
/** RollBack a transaction */ /** RollBack a transaction
*/
public function rollback () public function rollback ()
{ {
return self::$instance[$this->dsn]->rollback (); return self::$instance[$this->dsn]->rollback ();
} }
/** Hook preread /** Hook preread
This hook is run before selecting the data in the database, after the * This hook is run before selecting the data in the database, after the
verification * verification
@param array|null &$select Rows to select with * @param array|null &$select Rows to select with
$select = array (array ($key, $val, $operator), ...) * $select = array (array ($key, $val, $operator), ...)
$key=>column, $val=>value to found, $operator=>'LIKE', =... * $key=>column, $val=>value to found, $operator=>'LIKE', =...
@param array|null &$display Columns displayed * @param array|null &$display Columns displayed
$display = array ($col1, $col2...); * $display = array ($col1, $col2...);
@param array|null &$order Sort the columns by orientation * @param array|null &$order Sort the columns by orientation
$order = array (array ($key, $orientation), ...) * $order = array (array ($key, $orientation), ...)
$key=>column, $orientation=ASC/DESC * $key=>column, $orientation=ASC/DESC
@param boolean|null &$whereOr The WHERE parameters are separated by OR * @param boolean|null &$whereOr The WHERE parameters are separated by OR
instead of AND * instead of AND
@param array|null &$foreignSelect Add a filter on foreign keys */ * @param array|null &$foreignSelect Add a filter on foreign keys
*/
public function hookpreread (&$select, &$display, &$order, &$whereOr, public function hookpreread (&$select, &$display, &$order, &$whereOr,
&$foreignSelect) &$foreignSelect)
{ {
@@ -1432,60 +1450,77 @@ class dblayer
} }
/** Hook postread /** Hook postread
This hook is run after selecting the data. * This hook is run after selecting the data.
@param array $data the data selected by the select * @param array $data the data selected by the select
@return array The data modified by the hook */ * @return array The data modified by the hook
*/
public function hookpostread ($data) public function hookpostread ($data)
{ {
return $data; return $data;
} }
/** Hook preinsert /** Hook preinsert
This hook is run before inserting a new data in the database, after the * This hook is run before inserting a new data in the database, after the
verification * verification
@param array the data to insert in the database * @param array $data the data to insert in the database
@return the modified data */ * @return the modified data
*/
public function hookpreinsert ($data) public function hookpreinsert ($data)
{ {
return $data; return $data;
} }
/** Hook postinsert /** Hook postinsert
This hook is run after successfuly insert a new data in the database * This hook is run after successfuly insert a new data in the database
@return the modified lastID */ * @param array $data the data selected by the select
* @param integer $lastID the insert identifier
* @return the modified lastID
*/
public function hookpostinsert ($data, $lastID) public function hookpostinsert ($data, $lastID)
{ {
return $lastID; return $lastID;
} }
/** Hook preupdate /** Hook preupdate
This hook is run before updating a data in the database, after the * This hook is run before updating a data in the database, after the
verification * verification
@return the modified data */ * @param string $updatekey the key to be modify
* @param array $data the data selected by the select
* @return the modified data
*/
public function hookpreupdate ($updatekey, $data) public function hookpreupdate ($updatekey, $data)
{ {
return $data; return $data;
} }
/** Hook postupdate /** Hook postupdate
This hook is run after successfuly update a data in the database * This hook is run after successfuly update a data in the database
@return the modified $nbLinesUpdated */ * @param string $updatekey the key which was modified
* @param array $data the data selected by the select
* @param integer $nbLinesUpdated The number of modified lines
* @return the modified $nbLinesUpdated
*/
public function hookpostupdate ($updatekey, $data, $nbLinesUpdated) public function hookpostupdate ($updatekey, $data, $nbLinesUpdated)
{ {
return $nbLinesUpdated; return $nbLinesUpdated;
} }
/** Hook predelete /** Hook predelete
This hook is run before deleting a data in the database * This hook is run before deleting a data in the database
@return the modified $deletekey */ * @param string $deletekey The key to be removed
* @return the modified $deletekey
*/
public function hookpredelete ($deletekey) public function hookpredelete ($deletekey)
{ {
return $deletekey; return $deletekey;
} }
/** Hook postdelete /** Hook postdelete
This hook is run after successfuly deleting a data in the database * This hook is run after successfuly deleting a data in the database
@return $nbLinesUpdated */ * @param string $deletekey The removed key
* @param integer $nbLinesDeleted The number of deleted lines
* @return $nbLinesUpdated
*/
public function hookpostdelete ($deletekey, $nbLinesDeleted) public function hookpostdelete ($deletekey, $nbLinesDeleted)
{ {
return $nbLinesDeleted; return $nbLinesDeleted;
@@ -1494,63 +1529,81 @@ class dblayer
/////////////////// ///////////////////
/// SETTERS /// /// SETTERS ///
/////////////////// ///////////////////
/** Set the table property */ /** Set the table property
* @param string $table The table name to use
*/
public function tableSet ($table) public function tableSet ($table)
{ {
$this->table = $table; $this->table = $table;
return $this; return $this;
} }
/** Set the tableprefix property */ /** Set the tableprefix property
* @param string $tableprefix The prefix to add in table names
*/
public function tableprefixSet ($tableprefix) public function tableprefixSet ($tableprefix)
{ {
$this->tableprefix = $tableprefix; $this->tableprefix = $tableprefix;
return $this; return $this;
} }
/** Set the fields property */ /** Set the fields property
* @param array $fields Set the definition of the fields
*/
public function fieldsSet ($fields) public function fieldsSet ($fields)
{ {
$this->fields = $fields; $this->fields = $fields;
return $this; return $this;
} }
/** Set the primary property */ /** Set the primary property
* @param string $primary The primary field
*/
public function primarySet ($primary) public function primarySet ($primary)
{ {
$this->primary = $primary; $this->primary = $primary;
return $this; return $this;
} }
/** Set the unique property */ /** Set the unique property
* @param array $unique The array of the unique contraints
*/
public function uniqueSet ($unique) public function uniqueSet ($unique)
{ {
$this->unique = $unique; $this->unique = $unique;
return $this; return $this;
} }
/** Set the foreign property */ /** Set the foreign property
* @param array $foreign The foreign array
*/
public function foreignSet ($foreign) public function foreignSet ($foreign)
{ {
$this->foreign = $foreign; $this->foreign = $foreign;
return $this; return $this;
} }
/** Set the debug property */ /** Set the debug property
* @param integer $debug The debug value
*/
public function debugSet ($debug) public function debugSet ($debug)
{ {
$this->debug = $debug; $this->debug = $debug;
return $this; return $this;
} }
/** Set the dsn property */ /** Set the dsn property
* @param string $dsn The DSN to use
*/
public function dsnSet ($dsn) public function dsnSet ($dsn)
{ {
$this->dsn = $dsn; $this->dsn = $dsn;
return $this; return $this;
} }
/** Set the titles property */ /** Set the titles property
* @param array $titles The titles of the fields
*/
public function titlesSet ($titles) public function titlesSet ($titles)
{ {
$this->titles = $titles; $this->titles = $titles;

View File

@@ -31,19 +31,20 @@ class dblayerauthzgroups extends dblayer
/// MAIN METHODS /// /// MAIN METHODS ///
//////////////////////// ////////////////////////
/** Hook preread /** Hook preread
This hook is run before selecting the data in the database, after the * This hook is run before selecting the data in the database, after the
verification * verification
@param array|null &$select Rows to select with * @param array|null &$select Rows to select with
$select = array (array ($key, $val, $operator), ...) * $select = array (array ($key, $val, $operator), ...)
$key=>column, $val=>value to found, $operator=>'LIKE', =... * $key=>column, $val=>value to found, $operator=>'LIKE', =...
@param array|null &$display Columns displayed * @param array|null &$display Columns displayed
$display = array ($col1, $col2...); * $display = array ($col1, $col2...);
@param array|null &$order Sort the columns by orientation * @param array|null &$order Sort the columns by orientation
$order = array (array ($key, $orientation), ...) * $order = array (array ($key, $orientation), ...)
$key=>column, $orientation=ASC/DESC * $key=>column, $orientation=ASC/DESC
@param boolean|null &$whereOr The WHERE parameters are separated by OR * @param boolean|null &$whereOr The WHERE parameters are separated by OR
instead of AND * instead of AND
@param array|null &$foreignSelect Add a filter on foreign keys */ * @param array|null &$foreignSelect Add a filter on foreign keys
*/
public function hookpreread (&$select, &$display, &$order, &$whereOr, public function hookpreread (&$select, &$display, &$order, &$whereOr,
&$foreignSelect) &$foreignSelect)
{ {
@@ -67,10 +68,11 @@ class dblayerauthzgroups extends dblayer
} }
/** Hook postread /** Hook postread
This hook is run after selecting the data. Return only the allowed data to * This hook is run after selecting the data. Return only the allowed data to
the user. It must have at least the RO flag. * the user. It must have at least the RO flag.
@param array $data the data selected by the select * @param array $data the data selected by the select
@return array The data modified by the hook */ * @return array The data modified by the hook
*/
public function hookpostread ($data) public function hookpostread ($data)
{ {
// TODO : If foreign keys, do we check if the access is allowed too ? // TODO : If foreign keys, do we check if the access is allowed too ?
@@ -103,10 +105,11 @@ class dblayerauthzgroups extends dblayer
} }
/** Hook preinsert /** Hook preinsert
This hook is run before inserting a new data in the database, after the * This hook is run before inserting a new data in the database, after the
verification * verification
@param array the data to insert in the database * @param array $data the data to insert in the database
@return the modified data */ * @return the modified data
*/
public function hookpreinsert ($data) public function hookpreinsert ($data)
{ {
if ($this->module === null) if ($this->module === null)
@@ -128,8 +131,11 @@ class dblayerauthzgroups extends dblayer
} }
/** Hook postinsert /** Hook postinsert
This hook is run after successfuly insert a new data in the database * This hook is run after successfuly insert a new data in the database
@return the modified lastID */ * @param array $data The data stored in the database
* @param integer $lastID The lastID stored
* @return the modified lastID
*/
public function hookpostinsert ($data, $lastID) public function hookpostinsert ($data, $lastID)
{ {
if ($this->module === null) if ($this->module === null)
@@ -169,9 +175,12 @@ class dblayerauthzgroups extends dblayer
} }
/** Hook preupdate /** Hook preupdate
This hook is run before updating a data in the database, after the * This hook is run before updating a data in the database, after the
verification * verification
@return the modified data */ * @param integer $updatekey The key which will be updated
* @param array $data The data to store in the provided key
* @return the modified data
*/
public function hookpreupdate ($updatekey, $data) public function hookpreupdate ($updatekey, $data)
{ {
if ($this->module === null) if ($this->module === null)
@@ -192,8 +201,10 @@ class dblayerauthzgroups extends dblayer
} }
/** Hook predelete /** Hook predelete
This hook is run before deleting a data in the database * This hook is run before deleting a data in the database
@return the modified $deletekey */ * @param string $deletekey The key to delete
* @return the modified $deletekey
*/
public function hookpredelete ($deletekey) public function hookpredelete ($deletekey)
{ {
if ($this->module === null) if ($this->module === null)
@@ -214,8 +225,11 @@ class dblayerauthzgroups extends dblayer
} }
/** Hook postdelete /** Hook postdelete
This hook is run after successfuly deleting a data in the database * This hook is run after successfuly deleting a data in the database
@return $nbLinesUpdated */ * @param string $deletekey The key to delete
* @param integer $nbLinesDeleted The number of deleted lines
* @return $nbLinesUpdated
*/
public function hookpostdelete ($deletekey, $nbLinesDeleted) public function hookpostdelete ($deletekey, $nbLinesDeleted)
{ {
if ($this->module === null) if ($this->module === null)
@@ -232,7 +246,8 @@ class dblayerauthzgroups extends dblayer
return $nbLinesDeleted; return $nbLinesDeleted;
} }
/** Return true if all the paths are allowed. Throw an exception elsewhere */ /** Return true if all the paths are allowed. Throw an exception elsewhere
*/
private function allowPath () private function allowPath ()
{ {
if ($this->module === null) if ($this->module === null)
@@ -261,49 +276,63 @@ class dblayerauthzgroups extends dblayer
/////////////////// ///////////////////
/// SETTERS /// /// SETTERS ///
/////////////////// ///////////////////
/** Set the authzgroups property */ /** Set the authzgroups property
* @param object $authzgroups The object of the authzgroups
*/
public function authzgroupsSet ($authzgroups) public function authzgroupsSet ($authzgroups)
{ {
$this->authzgroups = $authzgroups; $this->authzgroups = $authzgroups;
return $this; return $this;
} }
/** Set the module property */ /** Set the module property
* @param string $module The module name to use
*/
public function moduleSet ($module) public function moduleSet ($module)
{ {
$this->module = $module; $this->module = $module;
return $this; return $this;
} }
/** Set the auth property */ /** Set the auth property
* @param array $auth The auth array
*/
public function authSet ($auth) public function authSet ($auth)
{ {
$this->auth = $auth; $this->auth = $auth;
return $this; return $this;
} }
/** Set the user property */ /** Set the user property
* @param string $user The user to authorize
*/
public function userSet ($user) public function userSet ($user)
{ {
$this->user = $user; $this->user = $user;
return $this; return $this;
} }
/** Set the createGroup property */ /** Set the createGroup property
* @param array|string $createGroup The createGroup to set
*/
public function createGroupSet ($createGroup) public function createGroupSet ($createGroup)
{ {
$this->createGroup = $createGroup; $this->createGroup = $createGroup;
return $this; return $this;
} }
/** Set the createRight property */ /** Set the createRight property
* @param string $createRight The right to create
*/
public function createRightSet ($createRight) public function createRightSet ($createRight)
{ {
$this->createRight = $createRight; $this->createRight = $createRight;
return $this; return $this;
} }
/** Set the path property */ /** Set the path property
* @param string $path The pre-path to use
*/
public function pathSet ($path) public function pathSet ($path)
{ {
$this->path = $path; $this->path = $path;

View File

@@ -25,6 +25,7 @@ class file
public $debug = 0; public $debug = 0;
/** Change the current working directory /** Change the current working directory
* @param string $directory Go in the provided directory
* @return bool true if the directory is changed * @return bool true if the directory is changed
* @throws If directory not exists, or the directory is not executable * @throws If directory not exists, or the directory is not executable
*/ */
@@ -66,6 +67,7 @@ class file
/** Change the rights mode for a file/dir... /** Change the rights mode for a file/dir...
* @param string $filename The file/directory to change * @param string $filename The file/directory to change
* @param integer $mode The mode to use for the filename
* @throws If filename not exists, or the directory is not RW * @throws If filename not exists, or the directory is not RW
*/ */
public function chmod ($filename, $mode) public function chmod ($filename, $mode)
@@ -600,6 +602,8 @@ class file
* @param string $filename the filename * @param string $filename the filename
* @param integer|null $time the timestamp to use (actual timestamp if not * @param integer|null $time the timestamp to use (actual timestamp if not
* defined) * defined)
* @param integer|null $atime the access timestamp to use (actual timestamp
* if not defined)
* @return bool true or false on failure * @return bool true or false on failure
* @throws If parent directory not exists, is not writeable * @throws If parent directory not exists, is not writeable
*/ */

223
imap.php
View File

@@ -19,7 +19,18 @@ class imap
private static $instance = array (); private static $instance = array ();
/** The constructor /** The constructor
The IMAP standard port is 143, but SSL tunnelled is 993 */ * The IMAP standard port is 143, but SSL tunnelled is 993
* @param string|null $imapserver The IMAP server to connect. Localhost is
* used if not defined
* @param integer|null $imapport The IMAP port to connect. 143 is used if not
* defined
* @param string|null $username The username to connect
* @param string|null $password The password to connect
* @param boolean|null $imapssl Use the SSL connection layer. Not used by
* default
* @param boolean|null $imapcertvalidate Check the certificates if using the
* SSL connection. True by default
*/
public function __construct ($imapserver = "localhost", $imapport = 143, public function __construct ($imapserver = "localhost", $imapport = 143,
$username = null, $password = null, $username = null, $password = null,
$imapssl = false, $imapcertvalidate = true) $imapssl = false, $imapcertvalidate = true)
@@ -29,8 +40,19 @@ class imap
} }
/** The connect can be used when extends the imap class. The constructor can /** The connect can be used when extends the imap class. The constructor can
be override by the child class. * be override by the child class.
The IMAP standard port is 143, but SSL tunnelled is 993 */ * The IMAP standard port is 143, but SSL tunnelled is 993
* @param string|null $imapserver The IMAP server to connect. Localhost is
* used if not defined
* @param integer|null $imapport The IMAP port to connect. 143 is used if not
* defined
* @param string|null $username The username to connect
* @param string|null $password The password to connect
* @param boolean|null $imapssl Use the SSL connection layer. Not used by
* default
* @param boolean|null $imapcertvalidate Check the certificates if using the
* SSL connection. True by default
*/
public function connect ($imapserver = "localhost", $imapport = 143, public function connect ($imapserver = "localhost", $imapport = 143,
$username = null, $password = null, $username = null, $password = null,
$imapssl = false, $imapcertvalidate = true) $imapssl = false, $imapcertvalidate = true)
@@ -75,8 +97,9 @@ class imap
/// FOLDERS /// /// FOLDERS ///
/////////////////// ///////////////////
/** Return an array of the existing folders. The sub-folders are with slash /** Return an array of the existing folders. The sub-folders are with slash
separator * separator
The names of folders are converted in UTF-8 */ * The names of folders are converted in UTF-8
*/
public function foldersList () public function foldersList ()
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -87,7 +110,8 @@ class imap
} }
/** Return an array with folder name in key and attributes in value. The /** Return an array with folder name in key and attributes in value. The
attributes allow to see if there is new mails in folders */ * attributes allow to see if there is new mails in folders
*/
public function foldersListWithAttr () public function foldersListWithAttr ()
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -107,7 +131,9 @@ class imap
} }
/** Change to provided folder /** Change to provided folder
The folder name must be in UTF-8. The folder must be absolute */ * The folder name must be in UTF-8. The folder must be absolute
* @param string $folder Change to the provided folder
*/
public function changeFolder ($folder) public function changeFolder ($folder)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -124,7 +150,8 @@ class imap
return $rc; return $rc;
} }
/** Return the current folder in UTF-8 */ /** Return the current folder in UTF-8
*/
public function getFolder () public function getFolder ()
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -132,7 +159,9 @@ class imap
return $this->curDir; return $this->curDir;
} }
/** Create a new folder, provided in UTF-8. The folder must be absolute */ /** Create a new folder, provided in UTF-8. The folder must be absolute
* @param string $folder Create the provided folder
*/
public function createFolder ($folder) public function createFolder ($folder)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -145,6 +174,7 @@ class imap
} }
/** Delete an existing folder provided in UTF-8. The folder must be absolute /** Delete an existing folder provided in UTF-8. The folder must be absolute
* @param string $folder The folder to delete
*/ */
public function deleteFolder ($folder) public function deleteFolder ($folder)
{ {
@@ -158,7 +188,8 @@ class imap
} }
/** Return the list of the folders substcribed by the user. The folders are /** Return the list of the folders substcribed by the user. The folders are
in UTF-8 */ * in UTF-8
*/
public function getSubscribe () public function getSubscribe ()
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -178,7 +209,10 @@ class imap
return $res; return $res;
} }
/** Add a subscription for a folder. The folder must be in UTF-8 */ /** Add a subscription for a folder. The folder must be in UTF-8
* @param string $folder Add the provided folder to the subscription file of
* the user
*/
public function addSubscribe ($folder) public function addSubscribe ($folder)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -188,7 +222,10 @@ class imap
$this->mailbox.$folder); $this->mailbox.$folder);
} }
/** Remove a subscription for a folder. The folder must be in UTF-8 */ /** Remove a subscription for a folder. The folder must be in UTF-8
* @param string $folder Remove the provided folder to the subscription file
* of the user
*/
public function delSubscribe ($folder) public function delSubscribe ($folder)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -199,15 +236,17 @@ class imap
} }
/** Return the information concerning a folder. It return an object with the /** Return the information concerning a folder. It return an object with the
following properties : * following properties :
Date date of last change (current datetime) * Date date of last change (current datetime)
Driver driver * Driver driver
Mailbox name of the mailbox * Mailbox name of the mailbox
Nmsgs number of messages * Nmsgs number of messages
Recent number of recent messages * Recent number of recent messages
Unread number of unread messages * Unread number of unread messages
Deleted number of deleted messages * Deleted number of deleted messages
Size mailbox size */ * Size mailbox size
* @param string $folder The folder to get the informations
*/
public function getFolderInfo ($folder) public function getFolderInfo ($folder)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -225,6 +264,9 @@ class imap
/// LIST MAILS /// /// LIST MAILS ///
////////////////////// //////////////////////
/** Return an array of mailHeaders order by $field and by order ASC or DESC /** Return an array of mailHeaders order by $field and by order ASC or DESC
* @param array $mailHeaders The headers to sort
* @param string $field The field to examine
* @param boolean|null $orderAsc The order of sorting. Asc if not defined
*/ */
public function imapSortMail ($mailHeaders, $field, $orderAsc = TRUE) public function imapSortMail ($mailHeaders, $field, $orderAsc = TRUE)
{ {
@@ -249,12 +291,16 @@ class imap
} }
/** Fetch the headers for all messages in the current folder sorted by date /** Fetch the headers for all messages in the current folder sorted by date
Return an array of mail object containing information like the subject, * Return an array of mail object containing information like the subject,
the date, if the message is already read (recent), answered... * the date, if the message is already read (recent), answered...
(see http://www.php.net/manual/en/function.imap-fetch-overview.php) * (see http://www.php.net/manual/en/function.imap-fetch-overview.php)
If the $from is negative, take the LAST $from mails * If the $from is negative, take the LAST $from mails
If from is zero, it's value is override to 1 * If from is zero, it's value is override to 1
For information, takes 0.4s to select 30 mails on 1552 **/ * For information, takes 0.4s to select 30 mails on 1552
* @param integer|null $from The selector of the mails. 1 if not defined
* @param integer|null $nbmails The number of mails returned by the method
* 30 if not defined
**/
public function mailsDate ($from = 1, $nbmails = 30) public function mailsDate ($from = 1, $nbmails = 30)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -301,7 +347,8 @@ class imap
} }
/** Return all the mails numbers order by thread in an array. /** Return all the mails numbers order by thread in an array.
[] => array ("msgno"=>msgno, "depth"=>depth) */ * [] => array ("msgno"=>msgno, "depth"=>depth)
*/
public function mailsThread () public function mailsThread ()
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -331,7 +378,8 @@ class imap
return $thread; return $thread;
} }
/** Send back the number of mails in the mailbox */ /** Send back the number of mails in the mailbox
*/
public function mailsNumber () public function mailsNumber ()
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -341,7 +389,9 @@ class imap
return $MC->Nmsgs; return $MC->Nmsgs;
} }
/** Return an array containing the msgno corresponding to the criteria */ /** Return an array containing the msgno corresponding to the criteria
* @param string $criteria The criteria to use for the IMAP search
*/
public function mailsSearch ($criteria) public function mailsSearch ($criteria)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -351,8 +401,11 @@ class imap
} }
/** Move the mail provided in the $folder in UTF-8. /** Move the mail provided in the $folder in UTF-8.
If $msgno is an array, all the mails with the contain msgno are deleted * If $msgno is an array, all the mails with the contain msgno are deleted
Expunge automatically the current folder to remove the old emails */ * Expunge automatically the current folder to remove the old emails
* @param integer|array $msgno The message number(s) to copy
* @param string $folder The destination folder of the move. Must exists
*/
public function mailMove ($msgno, $folder) public function mailMove ($msgno, $folder)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -372,7 +425,10 @@ class imap
} }
/** Copy the mail provided in the $folder in UTF-8. /** Copy the mail provided in the $folder in UTF-8.
If $msgno is an array, all the mails with the contain msgno are copied */ * If $msgno is an array, all the mails with the contain msgno are copied
* @param integer|array $msgno The message number(s) to copy
* @param string $folder The destination folder of the copy. Must exists
*/
public function mailCopy ($msgno, $folder) public function mailCopy ($msgno, $folder)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -390,7 +446,8 @@ class imap
} }
/** Expunge the mailbox. If the autoexpunge is activated, it is normally not /** Expunge the mailbox. If the autoexpunge is activated, it is normally not
needed */ * needed
*/
public function expunge () public function expunge ()
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -402,7 +459,9 @@ class imap
///////////////////////////// /////////////////////////////
/// GET/SET/DEL EMAIL /// /// GET/SET/DEL EMAIL ///
///////////////////////////// /////////////////////////////
/** Get an existing email in the current folder in raw format */ /** Get an existing email in the current folder in raw format
* @param integer $msgno The message number to examine
*/
public function getEmailRaw ($msgno) public function getEmailRaw ($msgno)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -418,7 +477,9 @@ class imap
return $content; return $content;
} }
/** Get the headers of the email (in raw format) */ /** Get the headers of the email (in raw format)
* @param integer $msgno The message number to examine
*/
public function getEmailHeadersRaw ($msgno) public function getEmailHeadersRaw ($msgno)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -433,7 +494,9 @@ class imap
return $content; return $content;
} }
/** Get all the body (and attached files) of an email in raw format */ /** Get all the body (and attached files) of an email in raw format
* @param integer $msgno The message number to examine
*/
public function getEmailBodyRaw ($msgno) public function getEmailBodyRaw ($msgno)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -448,7 +511,9 @@ class imap
return $content; return $content;
} }
/** Return email structure of the body */ /** Return email structure of the body
* @param integer $msgno The message number to examine
*/
public function getStructure ($msgno) public function getStructure ($msgno)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -463,7 +528,9 @@ class imap
return $structure; return $structure;
} }
/** Return the structure of the mail body with the associated content */ /** Return the structure of the mail body with the associated content
* @param integer $msgno The message number to examine
*/
public function getStructureWithContent ($msgno) public function getStructureWithContent ($msgno)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -591,9 +658,12 @@ class imap
} }
/** Return the content of a part of the mail body defined in the structure in /** Return the content of a part of the mail body defined in the structure in
an object, with the associated mimetype, the parameters like the charset * an object, with the associated mimetype, the parameters like the charset
if they are defined, the number of lines associated to this part in the * if they are defined, the number of lines associated to this part in the
mail and some other info */ * mail and some other info
* @param integer $msgno The message number to examine
* @param integer $part The message part to get
*/
public function getStructureContent ($msgno, $part) public function getStructureContent ($msgno, $part)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -605,7 +675,9 @@ class imap
} }
/** Return the part identifiers of the structure of the mail body. To be used /** Return the part identifiers of the structure of the mail body. To be used
in getStructureContent */ * in getStructureContent
* @param integer $msgno The message number to examine
*/
public function getStructureParts ($msgno) public function getStructureParts ($msgno)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -617,9 +689,11 @@ class imap
} }
/** Delete all the mailIDs (msgno) provided in an array or a single mail if /** Delete all the mailIDs (msgno) provided in an array or a single mail if
$msgno is not an array * $msgno is not an array
DO NOT MOVE THE MAIL IN TRASH, DESTROY THE MAIL REALLY * DO NOT MOVE THE MAIL IN TRASH, DESTROY THE MAIL REALLY
Expunge the mails at the end of the operation */ * Expunge the mails at the end of the operation
* @param array|integer $msgno The message number(s) to remove
*/
public function mailsDel ($msgno) public function mailsDel ($msgno)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -637,8 +711,10 @@ class imap
} }
/** Add a new mail in the current folder. The content must be a string /** Add a new mail in the current folder. The content must be a string
containing all the mail (header and body). If the content is invalid, the * containing all the mail (header and body). If the content is invalid, the
directory listing can provide erroneous data */ * directory listing can provide erroneous data
* @param string $content the content of the mail to add
*/
public function mailAdd ($content) public function mailAdd ($content)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -657,7 +733,8 @@ class imap
///////////////// /////////////////
/// QUOTA /// /// QUOTA ///
///////////////// /////////////////
/** Return the quota used by the user in Mo */ /** Return the quota used by the user in Mo
*/
public function getQuota () public function getQuota ()
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -675,13 +752,16 @@ class imap
/// FLAGS /// /// FLAGS ///
///////////////// /////////////////
/** Set the flags of the msgno. If msgno is an array, the flags will be write /** Set the flags of the msgno. If msgno is an array, the flags will be write
on the list of mails. The others flags of the email are not modified. * on the list of mails. The others flags of the email are not modified.
The flags must be an array containing : * The flags must be an array containing :
\Seen Message has been read * \Seen Message has been read
\Answered Message has been answered * \Answered Message has been answered
\Flagged Message is "flagged" for urgent/special attention * \Flagged Message is "flagged" for urgent/special attention
\Deleted Message is "deleted" for removal by later EXPUNGE * \Deleted Message is "deleted" for removal by later EXPUNGE
\Draft Message has not completed composition (marked as a draft). */ * \Draft Message has not completed composition (marked as a draft).
* @param integer|array $msgno The messages number(s) to add the flags
* @param array $flags The flags to add
*/
public function setFlag ($msgno, $flags) public function setFlag ($msgno, $flags)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -698,14 +778,17 @@ class imap
} }
/** Unset the flags of the msgno. If msgno is an array, the flags will be /** Unset the flags of the msgno. If msgno is an array, the flags will be
write on the list of mails. The others flags of the email are not * write on the list of mails. The others flags of the email are not
modified. * modified.
The flags must be an array containing : * The flags must be an array containing :
\Seen Message has been read * \Seen Message has been read
\Answered Message has been answered * \Answered Message has been answered
\Flagged Message is "flagged" for urgent/special attention * \Flagged Message is "flagged" for urgent/special attention
\Deleted Message is "deleted" for removal by later EXPUNGE * \Deleted Message is "deleted" for removal by later EXPUNGE
\Draft Message has not completed composition (marked as a draft). */ * \Draft Message has not completed composition (marked as a draft).
* @param integer|array $msgno The messages number(s) to remove the flags
* @param array $flags The flags to remove
*/
public function unsetFlag ($msgno, $flags) public function unsetFlag ($msgno, $flags)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -722,8 +805,10 @@ class imap
} }
/** Mark mail(s) as read. /** Mark mail(s) as read.
If msgno is an array, a list of mails will be modified. * If msgno is an array, a list of mails will be modified.
If msgno is an integer, only one mail will be modified */ * If msgno is an integer, only one mail will be modified
* @param integer|array $msgno The messages number(s) to mark as read
*/
public function markMailAsRead ($msgno) public function markMailAsRead ($msgno)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)
@@ -740,8 +825,10 @@ class imap
} }
/** Mark mail(s) as unread. /** Mark mail(s) as unread.
If msgno is an array, a list of mails will be modified. * If msgno is an array, a list of mails will be modified.
If msgno is an integer, only one mail will be modified */ * If msgno is an integer, only one mail will be modified
* @param integer|array $msgno The messages number(s) to mark as unread
*/
public function markMailAsUnread ($msgno) public function markMailAsUnread ($msgno)
{ {
if ($this->mailbox === null) if ($this->mailbox === null)

View File

@@ -8,8 +8,12 @@
class inifile class inifile
{ {
/** Return an array with the .ini file content /** Return an array with the .ini file content
If the sections are true, the sections are analyzed too * If the sections are true, the sections are analyzed too
This function is the same as parse_ini_file PHP internal */ * This function is the same as parse_ini_file PHP internal
* @param string $file The ini file to read
* @param boolean|null $sections Manage the sections if true. False by
* default
*/
public function getFile ($file, $sections=false) public function getFile ($file, $sections=false)
{ {
if (! file_exists ($file)) if (! file_exists ($file))
@@ -22,8 +26,12 @@ class inifile
} }
/** Return an array with the .ini string content /** Return an array with the .ini string content
If the sections are true, the sections are analyzed too * If the sections are true, the sections are analyzed too
This function is the same as parse_ini_string PHP internal */ * This function is the same as parse_ini_string PHP internal
* @param string $string The ini string to read
* @param boolean|null $sections Manage the sections if true. False by
* default
*/
public function getString ($string, $sections=false) public function getString ($string, $sections=false)
{ {
$res = parse_ini_string ($string, $sections); $res = parse_ini_string ($string, $sections);
@@ -58,7 +66,10 @@ class inifile
} }
/** Return a string containing a .ini content from the provided array. /** Return a string containing a .ini content from the provided array.
If the sections are true, define the first child of the array as sections * If the sections are true, define the first child of the array as sections
* @param array $array The array read from a .ini file
* @param boolean|null $sections Manage the sections if true. False by
* default
*/ */
public function setString ($array, $sections=false) public function setString ($array, $sections=false)
{ {
@@ -132,8 +143,12 @@ class inifile
} }
/** Save a file containing a .ini content from the provided array. /** Save a file containing a .ini content from the provided array.
Don't create the directory if it doesn't exists * Don't create the directory if it doesn't exists
If the sections are true, define the first child of the array as sections * If the sections are true, define the first child of the array as sections
* @param string $file The .ini file to store
* @param array $array The array to store in file
* @param boolean|null $sections Manage the sections if true. False by
* default
*/ */
public function setFile ($file, $array, $sections=false) public function setFile ($file, $array, $sections=false)
{ {

View File

@@ -6,7 +6,9 @@
/** Manage the IP addresses conversions */ /** Manage the IP addresses conversions */
class ipaddresses class ipaddresses
{ {
/** Return true if the provided IP address is valid (IPv4 or IPv6) */ /** Return true if the provided IP address is valid (IPv4 or IPv6)
* @param string $ip The IP Address to validate
*/
public function validIPAddress ($ip) public function validIPAddress ($ip)
{ {
if (!is_string ($ip) || $ip === "") if (!is_string ($ip) || $ip === "")
@@ -19,7 +21,9 @@ class ipaddresses
return $rc; return $rc;
} }
/** Return true if the provided IP address is valid and is IPv4 */ /** Return true if the provided IP address is valid and is IPv4
* @param string $ip The IP Address to validate
*/
public function validIPv4Address ($ip) public function validIPv4Address ($ip)
{ {
if (!is_string ($ip) || $ip === "") if (!is_string ($ip) || $ip === "")
@@ -31,7 +35,9 @@ class ipaddresses
return TRUE; return TRUE;
} }
/** Return true if the provided IP address is valid and is IPv6 */ /** Return true if the provided IP address is valid and is IPv6
* @param string $ip The IP Address to validate
*/
public function validIPv6Address ($ip) public function validIPv6Address ($ip)
{ {
if (!is_string ($ip) || $ip === "") if (!is_string ($ip) || $ip === "")
@@ -44,10 +50,12 @@ class ipaddresses
} }
/** Return the IPv6 uncompressed (all the fields exists). They are not filled /** Return the IPv6 uncompressed (all the fields exists). They are not filled
by zeros * by zeros
If the provided IP is IPv4, there is no change applied * If the provided IP is IPv4, there is no change applied
Return False if the parameter is invalid * Return False if the parameter is invalid
Based on http://www.weberdev.com/get_example.php3?ExampleID=3921 */ * Based on http://www.weberdev.com/get_example.php3?ExampleID=3921
* @param string $ip The IP address to uncompress
*/
public function uncompressIPv6 ($ip) public function uncompressIPv6 ($ip)
{ {
if (! is_string ($ip) || $ip === "") if (! is_string ($ip) || $ip === "")
@@ -80,11 +88,13 @@ class ipaddresses
return $ip; return $ip;
} }
/* Get an IPv6 address with the format /** Get an IPv6 address with the format
x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x * x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x
and return it with format * and return it with format
xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx * xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
Return false if the IP provided is not complete */ * Return false if the IP provided is not complete
* @param string $ipv6 The IPv6 to group
*/
public function groupIPv6 ($ipv6) public function groupIPv6 ($ipv6)
{ {
if (! is_string ($ipv6) || $ipv6 === "") if (! is_string ($ipv6) || $ipv6 === "")
@@ -106,9 +116,11 @@ class ipaddresses
return $new; return $new;
} }
/* Return the IP adddress with filling the fields with the missing zeros. /** Return the IP adddress with filling the fields with the missing zeros.
Valid only on IPv6 (but don't change anything if the provided address is * Valid only on IPv6 (but don't change anything if the provided address is
IPv4) */ * IPv4)
* @param string $ip The IP to complete
*/
public function completeAddressWithZero ($ip) public function completeAddressWithZero ($ip)
{ {
if (! is_string ($ip) || $ip === "") if (! is_string ($ip) || $ip === "")
@@ -139,8 +151,11 @@ class ipaddresses
throw new \Exception (dgettext("domframework", "Invalid IP address"), 500); throw new \Exception (dgettext("domframework", "Invalid IP address"), 500);
} }
/* Return the provided CIDR in binary. Length must be in bytes. /** Return the provided CIDR in binary. Length must be in bytes.
Return FALSE if the parameters are invalid */ * Return FALSE if the parameters are invalid
* @param integer $cidr The CIDR to convert
* @param integer $length The length to use
*/
public function cidrToBin ($cidr, $length) public function cidrToBin ($cidr, $length)
{ {
if (! is_numeric ($cidr) || $cidr < 0 || $cidr > 128) if (! is_numeric ($cidr) || $cidr < 0 || $cidr > 128)
@@ -156,8 +171,14 @@ class ipaddresses
return pack ('H*', $this->str_base_convert ($val, 2, 16)); return pack ('H*', $this->str_base_convert ($val, 2, 16));
} }
/* Base conversion with 128 bits support for IPv6 /** Base conversion with 128 bits support for IPv6
Based on http://fr2.php.net/manual/en/function.base-convert.php#109660 */ * Based on http://fr2.php.net/manual/en/function.base-convert.php#109660
* @param string $str The string to convert
* @param integer|null $frombase The base of the provided string (10 by
* default)
* @param integer|null $tobase The base of the returned string (36 by
* default)
*/
public function str_base_convert($str, $frombase=10, $tobase=36) public function str_base_convert($str, $frombase=10, $tobase=36)
{ {
$str = trim ($str); $str = trim ($str);
@@ -194,9 +215,11 @@ class ipaddresses
return $s; return $s;
} }
/* Reverse the provided IP address /** Reverse the provided IP address
The IPv6 are returned in format : * The IPv6 are returned in format :
x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x */ * x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x
* @param string $ipReverse The IPv6 to reverse
*/
function reverseIPAddress ($ipReverse) function reverseIPAddress ($ipReverse)
{ {
if (!is_string ($ipReverse) || $ipReverse === "") if (!is_string ($ipReverse) || $ipReverse === "")
@@ -229,10 +252,12 @@ class ipaddresses
throw new \Exception (dgettext("domframework", "Invalid IP address"), 500); throw new \Exception (dgettext("domframework", "Invalid IP address"), 500);
} }
/* This function return the CIDR associated to the provided netmask /** This function return the CIDR associated to the provided netmask
Ex. Return 24 for a mask 255.255.255.0 * Ex. Return 24 for a mask 255.255.255.0
Work only in IPv4 * Work only in IPv4
Return FALSE if the provided IP is invalid */ * Return FALSE if the provided IP is invalid
* @param string $netmask The mask to convert in CIDR
*/
public function netmask2cidr ($netmask) public function netmask2cidr ($netmask)
{ {
$netmask = ip2long ($netmask); $netmask = ip2long ($netmask);

View File

@@ -24,10 +24,11 @@ class language
public $cacheDir = "data/locale"; public $cacheDir = "data/locale";
/** Choose the best language in the browser list and which is available in /** Choose the best language in the browser list and which is available in
locale path * locale path
@param string|null $repLocale Directory where are stored the translations * @param string|null $repLocale Directory where are stored the translations
@param string|null $languageCode The coding langugage of the soft * @param string|null $languageCode The coding langugage of the soft
@return string The choosed locale whithout charset (like fr_FR) */ * @return string The choosed locale whithout charset (like fr_FR)
*/
function languageSelection ($repLocale = "./locale", $languageCode = "fr_FR") function languageSelection ($repLocale = "./locale", $languageCode = "fr_FR")
{ {
$arrAccept = array (); $arrAccept = array ();
@@ -128,8 +129,9 @@ class language
} }
/** Return the language recorded in the Cookie. Check if this language is /** Return the language recorded in the Cookie. Check if this language is
allowed * allowed
@return string The language allowed or FALSE */ * @return string The language allowed or FALSE
*/
function languageCookie ($cookieName, $repLocale = "./locale") function languageCookie ($cookieName, $repLocale = "./locale")
{ {
if (!isset ($_COOKIE[$cookieName])) if (!isset ($_COOKIE[$cookieName]))
@@ -143,17 +145,19 @@ class language
} }
/** Set the cookie with a TTL of one month /** Set the cookie with a TTL of one month
@param string $cookieName The name of the cookie * @param string $cookieName The name of the cookie
@param string $languageCode Language to store * @param string $languageCode Language to store
@param string $sitepath The site path */ * @param string $sitepath The site path
*/
function languageCookieSet ($cookieName, $languageCode, $sitepath) function languageCookieSet ($cookieName, $languageCode, $sitepath)
{ {
@setcookie ($cookieName, $languageCode, time()+60*60*24*30, $sitepath); @setcookie ($cookieName, $languageCode, time()+60*60*24*30, $sitepath);
} }
/** Return an array with all the languages available in the $repLocale dir /** Return an array with all the languages available in the $repLocale dir
The languages are in the format 'en_US' without the codeset. * The languages are in the format 'en_US' without the codeset.
Return FALSE if there is an error */ * Return FALSE if there is an error
*/
function languageTraductionsList ($repLocale = "./locale") function languageTraductionsList ($repLocale = "./locale")
{ {
if (! is_dir ($repLocale) || ! is_readable ($repLocale)) if (! is_dir ($repLocale) || ! is_readable ($repLocale))
@@ -172,10 +176,12 @@ class language
return $list; return $list;
} }
/** Return the full text of the category
* Return false if it doesn't exists
* @param string $category The category to analyze
*/
private function languageCategoryText ($category) private function languageCategoryText ($category)
{ {
// Renvoie en texte la catégorie fournie en entier
// Renvoie FALSE si elle n'existe pas
$categories[LC_ALL] = "LC_ALL"; $categories[LC_ALL] = "LC_ALL";
$categories[LC_COLLATE] = "LC_COLLATE"; $categories[LC_COLLATE] = "LC_COLLATE";
$categories[LC_CTYPE] = "LC_CTYPE"; $categories[LC_CTYPE] = "LC_CTYPE";
@@ -189,12 +195,12 @@ class language
} }
/** This function manage the cache of $package.mo files as Apache cache them /** This function manage the cache of $package.mo files as Apache cache them
It return the directory to use * It return the directory to use
@param string $languageCode Language with format "fr_FR" * @param string $languageCode Language with format "fr_FR"
@param string|null $package The package name of the soft ($package.mo * @param string|null $package The package name of the soft ($package.mo
file). "messages" by default * file). "messages" by default
@param string|null $category The folder name LC_MESSAGES by default * @param string|null $category The folder name LC_MESSAGES by default
@param string|null $repLocale The folder where all the locales are stored * @param string|null $repLocale The folder where all the locales are stored
*/ */
function languageCache ($languageCode, $package="messages", function languageCache ($languageCode, $package="messages",
$category=LC_MESSAGES, $repLocale = "./locale") $category=LC_MESSAGES, $repLocale = "./locale")
@@ -255,6 +261,13 @@ class language
return $moFile; return $moFile;
} }
/** Start the Gettext support with the cached file .mo provided as parameter
* @param string $moFile The .mo file
* @param string $languageCode The language code to use
* @param integer $category the LC_ type to use
* @param string|null $repLocale The locale directory. Use "./locale" if not
* provided
*/
function languageActivation ($moFile, $languageCode, $category = LC_MESSAGES, function languageActivation ($moFile, $languageCode, $category = LC_MESSAGES,
$repLocale = "./locale") $repLocale = "./locale")
{ {

View File

@@ -181,7 +181,7 @@ class mail
/** Return the content array of the section /** Return the content array of the section
* @param string $sectionID The section ID to get * @param string $sectionID The section ID to get
* @param array The content of the section * @return array The content of the section
*/ */
private function sectionGet ($sectionID) private function sectionGet ($sectionID)
{ {
@@ -967,7 +967,7 @@ class mail
} }
/** Set the subject /** Set the subject
* @param string In UTF8 * @param string $subject In UTF8
*/ */
public function setSubject ($subject) public function setSubject ($subject)
{ {
@@ -1148,6 +1148,7 @@ class mail
/** Get a generic header /** Get a generic header
* If there is multiple headers with the same name, return the first * If there is multiple headers with the same name, return the first
* @param string $header The header to get * @param string $header The header to get
* @param array|null $headers Optional headers to examine
* @return string|bool the literal value or false if it doesn't exist * @return string|bool the literal value or false if it doesn't exist
*/ */
public function getHeader ($header, $headers=null) public function getHeader ($header, $headers=null)

View File

@@ -9,10 +9,13 @@ class markdown
/** To debug the markdown analyzer, activate the option */ /** To debug the markdown analyzer, activate the option */
public $debug = false; public $debug = false;
/** The list of the HTML elements used by block */
private $blockid = array ("<h1>","<h2>","<h3>","<h4>","<h5>","<h6>", private $blockid = array ("<h1>","<h2>","<h3>","<h4>","<h5>","<h6>",
"<hr/>"); "<hr/>");
/** Convert the markdown text to html */ /** Convert the markdown text to html
* @param string $markdown The markdown to convert
*/
public function html ($markdown) public function html ($markdown)
{ {
$markdown = rtrim ($markdown); $markdown = rtrim ($markdown);
@@ -47,7 +50,9 @@ class markdown
return $html; return $html;
} }
/** Search and replace in the paragraph on one line */ /** Search and replace in the paragraph on one line
* @param string $line The line to analyze
*/
private function searchReplace ($line) private function searchReplace ($line)
{ {
if ($this->debug) if ($this->debug)
@@ -118,9 +123,10 @@ class markdown
} }
/** Return HTML code corresponding to the code block /** Return HTML code corresponding to the code block
@param array $text The Markdown text to translate split by \n * @param array $text The Markdown text to translate split by \n
@param integer $depth The depth of current bloc (in number of space) * @param integer $depth The depth of current bloc (in number of space)
@param integer $pos The start line number of the bloc */ * @param integer $pos The start line number of the bloc
*/
private function typeCode ($text, $depth, &$pos) private function typeCode ($text, $depth, &$pos)
{ {
if ($this->debug) echo "CALL typeCode (\$text, $depth, $pos)\n"; if ($this->debug) echo "CALL typeCode (\$text, $depth, $pos)\n";
@@ -143,9 +149,10 @@ class markdown
} }
/** Return HTML code corresponding to the OL block /** Return HTML code corresponding to the OL block
@param array $text The Markdown text to translate split by \n * @param array $text The Markdown text to translate split by \n
@param integer $depth The depth of current bloc (in number of space) * @param integer $depth The depth of current bloc (in number of space)
@param integer $pos The start line number of the bloc */ * @param integer $pos The start line number of the bloc
*/
private function typeOL ($text, $depth, &$pos) private function typeOL ($text, $depth, &$pos)
{ {
if ($this->debug) echo "CALL typeOL (\$text, $depth, $pos)\n"; if ($this->debug) echo "CALL typeOL (\$text, $depth, $pos)\n";
@@ -155,9 +162,10 @@ class markdown
} }
/** Return HTML code corresponding to the UL block /** Return HTML code corresponding to the UL block
@param array $text The Markdown text to translate split by \n * @param array $text The Markdown text to translate split by \n
@param integer $depth The depth of current bloc (in number of space) * @param integer $depth The depth of current bloc (in number of space)
@param integer $pos The start line number of the bloc */ * @param integer $pos The start line number of the bloc
*/
private function typeUL ($text, $depth, &$pos) private function typeUL ($text, $depth, &$pos)
{ {
if ($this->debug) echo "CALL typeUL (\$text, $depth, $pos)\n"; if ($this->debug) echo "CALL typeUL (\$text, $depth, $pos)\n";
@@ -166,6 +174,12 @@ class markdown
return $content; return $content;
} }
/** Return the HTML code corresponding to the OL/UL block
* @param array $text The Markdown text to translate split by \n
* @param integer $depth The depth of current bloc (in number of space)
* @param integer $pos The start line number of the bloc
* @param string $type The block type : "ul" or "ol"
*/
private function typeOLUL ($text, $depth, &$pos, $type) private function typeOLUL ($text, $depth, &$pos, $type)
{ {
if ($this->debug) echo "CALL typeOLUL (\$text, $depth, $pos, $type)\n"; if ($this->debug) echo "CALL typeOLUL (\$text, $depth, $pos, $type)\n";
@@ -230,8 +244,12 @@ class markdown
} }
/** Return HTML code corresponding to the NONE block /** Return HTML code corresponding to the NONE block
The NONE type exists only on empty strings. Just skip the current and * The NONE type exists only on empty strings. Just skip the current and
empty line, and return an empty string */ * empty line, and return an empty string
* @param string $text The Markdown text to translate split by \n
* @param integer $depth The depth of the current bloc (in number of space)
* @param integer $pos The start line number of the bloc
*/
private function typeNONE ($text, $depth, &$pos) private function typeNONE ($text, $depth, &$pos)
{ {
if ($this->debug) echo "CALL typeNONE (\$text, $depth, $pos)\n"; if ($this->debug) echo "CALL typeNONE (\$text, $depth, $pos)\n";
@@ -240,9 +258,10 @@ class markdown
} }
/** Return HTML code corresponding to the P block /** Return HTML code corresponding to the P block
@param array $text The Markdown text to translate split by \n * @param array $text The Markdown text to translate split by \n
@param integer $depth The depth of current bloc (in number of space) * @param integer $depth The depth of current bloc (in number of space)
@param integer $pos The start line number of the bloc */ * @param integer $pos The start line number of the bloc
*/
private function typeP ($text, $depth, &$pos) private function typeP ($text, $depth, &$pos)
{ {
if ($this->debug) echo "CALL typeP (\$text, $depth, $pos)\n"; if ($this->debug) echo "CALL typeP (\$text, $depth, $pos)\n";
@@ -276,10 +295,11 @@ class markdown
} }
/** Detect the type of the text and call the appropriate function * /** Detect the type of the text and call the appropriate function *
@param array $text The Markdown text to translate split by \n * @param array $text The Markdown text to translate split by \n
@param integer $depth The depth of current bloc (in number of space) * @param integer $depth The depth of current bloc (in number of space)
@param integer $pos The start line number of the bloc * @param integer $pos The start line number of the bloc
@return the HTML code */ * @return the HTML code
*/
private function detectBlock ($text, $depth, &$pos) private function detectBlock ($text, $depth, &$pos)
{ {
if ($this->debug) echo "CALL detectBlock (\$text, $depth, $pos)\n"; if ($this->debug) echo "CALL detectBlock (\$text, $depth, $pos)\n";
@@ -323,7 +343,9 @@ class markdown
} }
/** Return the Type of object in the provided line /** Return the Type of object in the provided line
p, ul, ol, code */ * p, ul, ol, code
* @param string $line The line to get the type
*/
private function lineType ($line) private function lineType ($line)
{ {
if (! isset ($line{0})) if (! isset ($line{0}))
@@ -338,8 +360,9 @@ class markdown
} }
/** Return the depth of the provided line /** Return the depth of the provided line
@param string $line Line to analyze * @param string $line Line to analyze
@return the depth of the line */ * @return the depth of the line
*/
private function depth ($line) private function depth ($line)
{ {
return strspn ($line, " "); return strspn ($line, " ");

View File

@@ -7,14 +7,16 @@
class module class module
{ {
/** The modules are not allowed if $toplevel=0 /** The modules are not allowed if $toplevel=0
The modules can be in a module directory if $toplevel=1 * The modules can be in a module directory if $toplevel=1
The modules can be in the parent directory if $toplevel=2 * The modules can be in the parent directory if $toplevel=2
The modules can be in the local directory if $toplevel=4 * The modules can be in the local directory if $toplevel=4
The values can be added to allow multiple possibilities */ * The values can be added to allow multiple possibilities
*/
public $toplevel = 0; public $toplevel = 0;
/** List all the available (enable or disable) modules /** List all the available (enable or disable) modules
@return array The list of the available modules names with the path */ * @return array The list of the available modules names with the path
*/
public function listAvailable () public function listAvailable ()
{ {
$list = array (); $list = array ();
@@ -47,10 +49,11 @@ class module
} }
/** List all the enable modules coming from the configuration and available /** List all the enable modules coming from the configuration and available
in the system * in the system
@param array $confModules the list of the available modules coming from * @param array $confModules the list of the available modules coming from
the configuration. Can have some non available modules. * the configuration. Can have some non available modules.
@return array the list of the available modules names with the path */ * @return array the list of the available modules names with the path
*/
public function listEnable ($confModules) public function listEnable ($confModules)
{ {
$listAvailable = $this->listAvailable (); $listAvailable = $this->listAvailable ();
@@ -65,8 +68,10 @@ class module
} }
/** Return the name of the module translated in the provided language /** Return the name of the module translated in the provided language
The module name must be defined in the translation under the "modulename" * The module name must be defined in the translation under the "modulename"
item * item
* @param string $modulepath The module path
* @param string $lang The lang to use
*/ */
public function translateName ($modulepath, $lang) public function translateName ($modulepath, $lang)
{ {
@@ -75,4 +80,3 @@ class module
return basename ($modulepath); return basename ($modulepath);
} }
} }

View File

@@ -19,6 +19,7 @@ class outputhtml extends output
* @param array|null $replacement Replace the {key}=>value * @param array|null $replacement Replace the {key}=>value
* @param array|null $variable PHP variables send to the view and to layout * @param array|null $variable PHP variables send to the view and to layout
* (can be processed by foreach, if...) * (can be processed by foreach, if...)
* @param string|null $module The module name to use if needed
* @return Exit from PHP at the end of HTML display * @return Exit from PHP at the end of HTML display
*/ */
public function out ($data, $title = FALSE, public function out ($data, $title = FALSE,
@@ -131,7 +132,7 @@ EOT;
/** Get the layout and provide it the variables. The variables will be push in /** Get the layout and provide it the variables. The variables will be push in
* global to the layout (they can be used like $XX) * global to the layout (they can be used like $XX)
* @param string the layout file to load * @param string $layout the layout file to load
* @param array $variables The variables array to push to the layout * @param array $variables The variables array to push to the layout
* @return string the Layout with variables interpreted */ * @return string the Layout with variables interpreted */
private function layoutVariables ($layout, $variables) private function layoutVariables ($layout, $variables)

View File

@@ -22,6 +22,7 @@ class outputrest extends output
* @param array|null $replacement Replace the {key}=>value * @param array|null $replacement Replace the {key}=>value
* @param array|null $variable PHP variables send to the view and to layout * @param array|null $variable PHP variables send to the view and to layout
* (can be processed by foreach, if...) * (can be processed by foreach, if...)
* @param string|null $module The module name to use if needed
* @return Exit from PHP at the end of HTML display * @return Exit from PHP at the end of HTML display
*/ */
public function out ($data, $title = FALSE, public function out ($data, $title = FALSE,

View File

@@ -12,8 +12,10 @@ class ratelimit
public $unittime = 60; public $unittime = 60;
/** The function set a rate-limit /** The function set a rate-limit
@return bool true if the rate-limit is not overloaded * @param string $name The rate-limit object to set
false if the rate-limit is overloaded */ * @return bool true if the rate-limit is not overloaded
* false if the rate-limit is overloaded
*/
public function set ($name) public function set ($name)
{ {
throw new Exception (dgettext("domframework", throw new Exception (dgettext("domframework",
@@ -22,7 +24,9 @@ class ratelimit
} }
/** The function delete a rate-limit /** The function delete a rate-limit
@return bool */ * @param string $name The rate-limit object to del
* @return bool
*/
public function del ($name) public function del ($name)
{ {
throw new Exception (dgettext("domframework", throw new Exception (dgettext("domframework",
@@ -31,7 +35,8 @@ class ratelimit
} }
/** The function clean the storage /** The function clean the storage
@return bool */ * @return bool
*/
public function clean () public function clean ()
{ {
throw new Exception (dgettext("domframework", throw new Exception (dgettext("domframework",

View File

@@ -15,8 +15,10 @@ class ratelimitfile extends ratelimit
public $debug = false; public $debug = false;
/** The function set a rate-limit /** The function set a rate-limit
@return bool true if the rate-limit is not overloaded * @param string $name The rate-limit object to set
false if the rate-limit is overloaded */ * @return bool true if the rate-limit is not overloaded
* false if the rate-limit is overloaded
*/
public function set ($name) public function set ($name)
{ {
$this->storageOK(); $this->storageOK();
@@ -62,7 +64,9 @@ class ratelimitfile extends ratelimit
} }
/** The function delete a rate-limit /** The function delete a rate-limit
@return bool */ * @param string $name The rate-limit object to del
* @return bool
*/
public function del ($name) public function del ($name)
{ {
$this->storageOK(); $this->storageOK();
@@ -77,7 +81,8 @@ class ratelimitfile extends ratelimit
} }
/** The function clean the storage with expired entries /** The function clean the storage with expired entries
@return bool */ * @return bool
*/
public function clean () public function clean ()
{ {
$this->storageOK(); $this->storageOK();
@@ -95,7 +100,8 @@ class ratelimitfile extends ratelimit
return TRUE; return TRUE;
} }
/** Check the storageDir state */ /** Check the storageDir state
*/
private function storageOK () private function storageOK ()
{ {
if (file_exists ($this->storageDir)) if (file_exists ($this->storageDir))

View File

@@ -1,67 +1,89 @@
<?php <?php
/** The abstraction class of the users /** The abstraction class of the users
Allow to manage the users in multiple storages (SQL, HTPasswd, passwd file). * Allow to manage the users in multiple storages (SQL, HTPasswd, passwd file).
CRUD the users and allow to modify the password */ * CRUD the users and allow to modify the password
*/
class users class users
{ {
/** Connect to the storage */ /** Connect to the storage
*/
public function connect () public function connect ()
{ {
} }
/** Initialise the storage /** Initialise the storage
Create the structure of data needed to the class */ * Create the structure of data needed to the class
*/
public function initStorage () public function initStorage ()
{ {
} }
/** Create a new user /** Create a new user
If the password is not provided, create a default passwd (can be disable * If the password is not provided, create a default passwd (can be disable
password) */ * password)
* @param string $email The email to create
* @param string $firstname The firstname to create
* @param string $lastname The lastname to create
* @param string|null $password The password of the user
*/
public function adduser ($email, $firstname, $lastname, $password=null) public function adduser ($email, $firstname, $lastname, $password=null)
{ {
} }
/** Delete a user */ /** Delete a user
* @param string $email The email to delete
*/
public function deluser ($email) public function deluser ($email)
{ {
} }
/** Update a user */ /** Update a user
* @param string $oldemail The old email to update
* @param string $newemail The new mail to store
* @param string $firstname The new firstname to store
* @param string $lastname The lastname to store
*/
public function updateuser ($oldemail, $newemail, $firstname, $lastname) public function updateuser ($oldemail, $newemail, $firstname, $lastname)
{ {
} }
/** List the users */ /** List the users
*/
public function listusers () public function listusers ()
{ {
} }
/** Change password /** Change password
@param string $email the user email to change the password * @param string $email the user email to change the password
@param string $oldpassword The old password (to check if the user have the * @param string $oldpassword The old password (to check if the user have the
rights to change the password) * rights to change the password)
@param string $newpassword The new password to be recorded */ * @param string $newpassword The new password to be recorded
*/
public function changepassword ($email, $oldpassword, $newpassword) public function changepassword ($email, $oldpassword, $newpassword)
{ {
} }
/** Overwrite password (without oldpassword check) /** Overwrite password (without oldpassword check)
Must be reserved to the administrators. For the users, use changepassword * Must be reserved to the administrators. For the users, use changepassword
method * method
@param string $email the user email to change the password * @param string $email the user email to change the password
@param string $newpassword The new password to be recorded */ * @param string $newpassword The new password to be recorded
*/
public function overwritepassword ($email, $newpassword) public function overwritepassword ($email, $newpassword)
{ {
} }
/** Check if the provided password is correctely associated to the email user /** Check if the provided password is correctely associated to the email user
* @param string $email The email to validate
* @param string $password The password to validate
*/ */
public function checkValidPassword ($email, $password) public function checkValidPassword ($email, $password)
{ {
} }
/** Check if the user provided is correct */ /** Check if the user provided is correct
* @param string $email The email to validate
*/
public function checkEmail ($email) public function checkEmail ($email)
{ {
if (! is_string ($email)) if (! is_string ($email))
@@ -79,7 +101,9 @@ class users
return true; return true;
} }
/** Check if the firstname provided is correct */ /** Check if the firstname provided is correct
* @param string $firstname The firstname to check
*/
public function checkFirstname ($firstname) public function checkFirstname ($firstname)
{ {
if (! is_string ($firstname)) if (! is_string ($firstname))
@@ -97,7 +121,9 @@ class users
return true; return true;
} }
/** Check if the lastname provided is correct */ /** Check if the lastname provided is correct
* @param string $lastname The lastname to check
*/
public function checkLastname ($lastname) public function checkLastname ($lastname)
{ {
if (! is_string ($lastname)) if (! is_string ($lastname))
@@ -111,7 +137,9 @@ class users
return true; return true;
} }
/** Check if the password provided is correct */ /** Check if the password provided is correct
* @param string $password The password to check
*/
public function checkPassword ($password) public function checkPassword ($password)
{ {
if (! is_string ($password)) if (! is_string ($password))
@@ -129,7 +157,9 @@ class users
return true; return true;
} }
/** Crypt the password with the best algorithm available */ /** Crypt the password with the best algorithm available
* @param string $password The password to crypt
*/
public function cryptPasswd ($password) public function cryptPasswd ($password)
{ {
if (! function_exists ("openssl_random_pseudo_bytes")) if (! function_exists ("openssl_random_pseudo_bytes"))
@@ -149,7 +179,9 @@ class users
} }
/** Check if the password is enough complex /** Check if the password is enough complex
Return True if the password is enough complex */ * Return True if the password is enough complex
* @param string $password The password to check
*/
public function passwdComplexity ($password) public function passwdComplexity ($password)
{ {
} }