summaryrefslogtreecommitdiff
path: root/backend/php/src/objects/class.user.php
Side-by-side diff
Diffstat (limited to 'backend/php/src/objects/class.user.php') (more/less context) (ignore whitespace changes)
-rw-r--r--backend/php/src/objects/class.user.php502
1 files changed, 502 insertions, 0 deletions
diff --git a/backend/php/src/objects/class.user.php b/backend/php/src/objects/class.user.php
new file mode 100644
index 0000000..f92c7ac
--- a/dev/null
+++ b/backend/php/src/objects/class.user.php
@@ -0,0 +1,502 @@
+<?php
+/*
+ This SQL query will create the table to store your object.
+
+ CREATE TABLE `user` (
+ `userid` int(11) NOT NULL auto_increment,
+ `username` VARCHAR(255) NOT NULL,
+ `srp_s` VARCHAR(255) NOT NULL,
+ `srp_v` VARCHAR(255) NOT NULL,
+ `header` LONGTEXT NOT NULL,
+ `statistics` LONGTEXT NOT NULL,
+ `auth_version` VARCHAR(255) NOT NULL,
+ `version` VARCHAR(255) NOT NULL,
+ `lock` VARCHAR(255) NOT NULL, PRIMARY KEY (`userid`)) ENGINE=MyISAM;
+*/
+
+/**
+* <b>user</b> class with integrated CRUD methods.
+* @author Php Object Generator
+* @version POG 3.0e / PHP5.1 MYSQL
+* @see http://www.phpobjectgenerator.com/plog/tutorials/45/pdo-mysql
+* @copyright Free for personal & commercial use. (Offered under the BSD license)
+* @link http://www.phpobjectgenerator.com/?language=php5.1&wrapper=pdo&pdoDriver=mysql&objectName=user&attributeList=array+%28%0A++0+%3D%3E+%27username%27%2C%0A++1+%3D%3E+%27srp_s%27%2C%0A++2+%3D%3E+%27srp_v%27%2C%0A++3+%3D%3E+%27header%27%2C%0A++4+%3D%3E+%27statistics%27%2C%0A++5+%3D%3E+%27auth_version%27%2C%0A++6+%3D%3E+%27version%27%2C%0A++7+%3D%3E+%27lock%27%2C%0A++8+%3D%3E+%27record%27%2C%0A++9+%3D%3E+%27onetimepassword%27%2C%0A%29&typeList=array%2B%2528%250A%2B%2B0%2B%253D%253E%2B%2527VARCHAR%2528255%2529%2527%252C%250A%2B%2B1%2B%253D%253E%2B%2527VARCHAR%2528255%2529%2527%252C%250A%2B%2B2%2B%253D%253E%2B%2527VARCHAR%2528255%2529%2527%252C%250A%2B%2B3%2B%253D%253E%2B%2527LONGTEXT%2527%252C%250A%2B%2B4%2B%253D%253E%2B%2527LONGTEXT%2527%252C%250A%2B%2B5%2B%253D%253E%2B%2527VARCHAR%2528255%2529%2527%252C%250A%2B%2B6%2B%253D%253E%2B%2527VARCHAR%2528255%2529%2527%252C%250A%2B%2B7%2B%253D%253E%2B%2527VARCHAR%2528255%2529%2527%252C%250A%2B%2B8%2B%253D%253E%2B%2527HASMANY%2527%252C%250A%2B%2B9%2B%253D%253E%2B%2527HASMANY%2527%252C%250A%2529
+*/
+include_once('class.pog_base.php');
+class user extends POG_Base
+{
+ public $userId = '';
+
+ /**
+ * @var VARCHAR(255)
+ */
+ public $username;
+
+ /**
+ * @var VARCHAR(255)
+ */
+ public $srp_s;
+
+ /**
+ * @var VARCHAR(255)
+ */
+ public $srp_v;
+
+ /**
+ * @var LONGTEXT
+ */
+ public $header;
+
+ /**
+ * @var LONGTEXT
+ */
+ public $statistics;
+
+ /**
+ * @var VARCHAR(255)
+ */
+ public $auth_version;
+
+ /**
+ * @var VARCHAR(255)
+ */
+ public $version;
+
+ /**
+ * @var VARCHAR(255)
+ */
+ public $lock;
+
+ /**
+ * @var private array of record objects
+ */
+ private $_recordList = array();
+
+ /**
+ * @var private array of onetimepassword objects
+ */
+ private $_onetimepasswordList = array();
+
+ public $pog_attribute_type = array(
+ "userId" => array('db_attributes' => array("NUMERIC", "INT")),
+ "username" => array('db_attributes' => array("TEXT", "VARCHAR", "255")),
+ "srp_s" => array('db_attributes' => array("TEXT", "VARCHAR", "255")),
+ "srp_v" => array('db_attributes' => array("TEXT", "VARCHAR", "255")),
+ "header" => array('db_attributes' => array("TEXT", "LONGTEXT")),
+ "statistics" => array('db_attributes' => array("TEXT", "LONGTEXT")),
+ "auth_version" => array('db_attributes' => array("TEXT", "VARCHAR", "255")),
+ "version" => array('db_attributes' => array("TEXT", "VARCHAR", "255")),
+ "lock" => array('db_attributes' => array("TEXT", "VARCHAR", "255")),
+ "record" => array('db_attributes' => array("OBJECT", "HASMANY")),
+ "onetimepassword" => array('db_attributes' => array("OBJECT", "HASMANY")),
+ );
+ public $pog_query;
+
+
+ /**
+ * Getter for some private attributes
+ * @return mixed $attribute
+ */
+ public function __get($attribute)
+ {
+ if (isset($this->{"_".$attribute}))
+ {
+ return $this->{"_".$attribute};
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ function user($username='', $srp_s='', $srp_v='', $header='', $statistics='', $auth_version='', $version='', $lock='')
+ {
+ $this->username = $username;
+ $this->srp_s = $srp_s;
+ $this->srp_v = $srp_v;
+ $this->header = $header;
+ $this->statistics = $statistics;
+ $this->auth_version = $auth_version;
+ $this->version = $version;
+ $this->lock = $lock;
+ $this->_recordList = array();
+ $this->_onetimepasswordList = array();
+ }
+
+
+ /**
+ * Gets object from database
+ * @param integer $userId
+ * @return object $user
+ */
+ function Get($userId)
+ {
+ $connection = Database::Connect();
+ $this->pog_query = "select * from `user` where `userid`='".intval($userId)."' LIMIT 1";
+ $cursor = Database::Reader($this->pog_query, $connection);
+ while ($row = Database::Read($cursor))
+ {
+ $this->userId = $row['userid'];
+ $this->username = $this->Unescape($row['username']);
+ $this->srp_s = $this->Unescape($row['srp_s']);
+ $this->srp_v = $this->Unescape($row['srp_v']);
+ $this->header = $this->Unescape($row['header']);
+ $this->statistics = $this->Unescape($row['statistics']);
+ $this->auth_version = $this->Unescape($row['auth_version']);
+ $this->version = $this->Unescape($row['version']);
+ $this->lock = $this->Unescape($row['lock']);
+ }
+ return $this;
+ }
+
+
+ /**
+ * Returns a sorted array of objects that match given conditions
+ * @param multidimensional array {("field", "comparator", "value"), ("field", "comparator", "value"), ...}
+ * @param string $sortBy
+ * @param boolean $ascending
+ * @param int limit
+ * @return array $userList
+ */
+ function GetList($fcv_array = array(), $sortBy='', $ascending=true, $limit='')
+ {
+ $connection = Database::Connect();
+ $sqlLimit = ($limit != '' ? "LIMIT $limit" : '');
+ $this->pog_query = "select * from `user` ";
+ $userList = Array();
+ if (sizeof($fcv_array) > 0)
+ {
+ $this->pog_query .= " where ";
+ for ($i=0, $c=sizeof($fcv_array); $i<$c; $i++)
+ {
+ if (sizeof($fcv_array[$i]) == 1)
+ {
+ $this->pog_query .= " ".$fcv_array[$i][0]." ";
+ continue;
+ }
+ else
+ {
+ if ($i > 0 && sizeof($fcv_array[$i-1]) != 1)
+ {
+ $this->pog_query .= " AND ";
+ }
+ if (isset($this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes']) && $this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes'][0] != 'NUMERIC' && $this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes'][0] != 'SET')
+ {
+ if ($GLOBALS['configuration']['db_encoding'] == 1)
+ {
+ $value = POG_Base::IsColumn($fcv_array[$i][2]) ? "BASE64_DECODE(".$fcv_array[$i][2].")" : "'".$fcv_array[$i][2]."'";
+ $this->pog_query .= "BASE64_DECODE(`".$fcv_array[$i][0]."`) ".$fcv_array[$i][1]." ".$value;
+ }
+ else
+ {
+ $value = POG_Base::IsColumn($fcv_array[$i][2]) ? $fcv_array[$i][2] : "'".$this->Escape($fcv_array[$i][2])."'";
+ $this->pog_query .= "`".$fcv_array[$i][0]."` ".$fcv_array[$i][1]." ".$value;
+ }
+ }
+ else
+ {
+ $value = POG_Base::IsColumn($fcv_array[$i][2]) ? $fcv_array[$i][2] : "'".$fcv_array[$i][2]."'";
+ $this->pog_query .= "`".$fcv_array[$i][0]."` ".$fcv_array[$i][1]." ".$value;
+ }
+ }
+ }
+ }
+ if ($sortBy != '')
+ {
+ if (isset($this->pog_attribute_type[$sortBy]['db_attributes']) && $this->pog_attribute_type[$sortBy]['db_attributes'][0] != 'NUMERIC' && $this->pog_attribute_type[$sortBy]['db_attributes'][0] != 'SET')
+ {
+ if ($GLOBALS['configuration']['db_encoding'] == 1)
+ {
+ $sortBy = "BASE64_DECODE($sortBy) ";
+ }
+ else
+ {
+ $sortBy = "$sortBy ";
+ }
+ }
+ else
+ {
+ $sortBy = "$sortBy ";
+ }
+ }
+ else
+ {
+ $sortBy = "userid";
+ }
+ $this->pog_query .= " order by ".$sortBy." ".($ascending ? "asc" : "desc")." $sqlLimit";
+ $thisObjectName = get_class($this);
+ $cursor = Database::Reader($this->pog_query, $connection);
+ while ($row = Database::Read($cursor))
+ {
+ $user = new $thisObjectName();
+ $user->userId = $row['userid'];
+ $user->username = $this->Unescape($row['username']);
+ $user->srp_s = $this->Unescape($row['srp_s']);
+ $user->srp_v = $this->Unescape($row['srp_v']);
+ $user->header = $this->Unescape($row['header']);
+ $user->statistics = $this->Unescape($row['statistics']);
+ $user->auth_version = $this->Unescape($row['auth_version']);
+ $user->version = $this->Unescape($row['version']);
+ $user->lock = $this->Unescape($row['lock']);
+ $userList[] = $user;
+ }
+ return $userList;
+ }
+
+
+ /**
+ * Saves the object to the database
+ * @return integer $userId
+ */
+ function Save($deep = true)
+ {
+ $connection = Database::Connect();
+ $this->pog_query = "select `userid` from `user` where `userid`='".$this->userId."' LIMIT 1";
+ $rows = Database::Query($this->pog_query, $connection);
+ if ($rows > 0)
+ {
+ $this->pog_query = "update `user` set
+ `username`='".$this->Escape($this->username)."',
+ `srp_s`='".$this->Escape($this->srp_s)."',
+ `srp_v`='".$this->Escape($this->srp_v)."',
+ `header`='".$this->Escape($this->header)."',
+ `statistics`='".$this->Escape($this->statistics)."',
+ `auth_version`='".$this->Escape($this->auth_version)."',
+ `version`='".$this->Escape($this->version)."',
+ `lock`='".$this->Escape($this->lock)."'where `userid`='".$this->userId."'";
+ }
+ else
+ {
+ $this->pog_query = "insert into `user` (`username`, `srp_s`, `srp_v`, `header`, `statistics`, `auth_version`, `version`, `lock`) values (
+ '".$this->Escape($this->username)."',
+ '".$this->Escape($this->srp_s)."',
+ '".$this->Escape($this->srp_v)."',
+ '".$this->Escape($this->header)."',
+ '".$this->Escape($this->statistics)."',
+ '".$this->Escape($this->auth_version)."',
+ '".$this->Escape($this->version)."',
+ '".$this->Escape($this->lock)."')";
+ }
+ $insertId = Database::InsertOrUpdate($this->pog_query, $connection);
+ if ($this->userId == "")
+ {
+ $this->userId = $insertId;
+ }
+ if ($deep)
+ {
+ foreach ($this->_recordList as $record)
+ {
+ $record->userId = $this->userId;
+ $record->Save($deep);
+ }
+ foreach ($this->_onetimepasswordList as $onetimepassword)
+ {
+ $onetimepassword->userId = $this->userId;
+ $onetimepassword->Save($deep);
+ }
+ }
+ return $this->userId;
+ }
+
+
+ /**
+ * Clones the object and saves it to the database
+ * @return integer $userId
+ */
+ function SaveNew($deep = false)
+ {
+ $this->userId = '';
+ return $this->Save($deep);
+ }
+
+
+ /**
+ * Deletes the object from the database
+ * @return boolean
+ */
+ function Delete($deep = false, $across = false)
+ {
+ if ($deep)
+ {
+ $recordList = $this->GetRecordList();
+ foreach ($recordList as $record)
+ {
+ $record->Delete($deep, $across);
+ }
+ $onetimepasswordList = $this->GetOnetimepasswordList();
+ foreach ($onetimepasswordList as $onetimepassword)
+ {
+ $onetimepassword->Delete($deep, $across);
+ }
+ }
+ $connection = Database::Connect();
+ $this->pog_query = "delete from `user` where `userid`='".$this->userId."'";
+ return Database::NonQuery($this->pog_query, $connection);
+ }
+
+
+ /**
+ * Deletes a list of objects that match given conditions
+ * @param multidimensional array {("field", "comparator", "value"), ("field", "comparator", "value"), ...}
+ * @param bool $deep
+ * @return
+ */
+ function DeleteList($fcv_array, $deep = false, $across = false)
+ {
+ if (sizeof($fcv_array) > 0)
+ {
+ if ($deep || $across)
+ {
+ $objectList = $this->GetList($fcv_array);
+ foreach ($objectList as $object)
+ {
+ $object->Delete($deep, $across);
+ }
+ }
+ else
+ {
+ $connection = Database::Connect();
+ $pog_query = "delete from `user` where ";
+ for ($i=0, $c=sizeof($fcv_array); $i<$c; $i++)
+ {
+ if (sizeof($fcv_array[$i]) == 1)
+ {
+ $pog_query .= " ".$fcv_array[$i][0]." ";
+ continue;
+ }
+ else
+ {
+ if ($i > 0 && sizeof($fcv_array[$i-1]) !== 1)
+ {
+ $pog_query .= " AND ";
+ }
+ if (isset($this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes']) && $this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes'][0] != 'NUMERIC' && $this->pog_attribute_type[$fcv_array[$i][0]]['db_attributes'][0] != 'SET')
+ {
+ $pog_query .= "`".$fcv_array[$i][0]."` ".$fcv_array[$i][1]." '".$this->Escape($fcv_array[$i][2])."'";
+ }
+ else
+ {
+ $pog_query .= "`".$fcv_array[$i][0]."` ".$fcv_array[$i][1]." '".$fcv_array[$i][2]."'";
+ }
+ }
+ }
+ return Database::NonQuery($pog_query, $connection);
+ }
+ }
+ }
+
+
+ /**
+ * Gets a list of record objects associated to this one
+ * @param multidimensional array {("field", "comparator", "value"), ("field", "comparator", "value"), ...}
+ * @param string $sortBy
+ * @param boolean $ascending
+ * @param int limit
+ * @return array of record objects
+ */
+ function GetRecordList($fcv_array = array(), $sortBy='', $ascending=true, $limit='')
+ {
+ $record = new record();
+ $fcv_array[] = array("userId", "=", $this->userId);
+ $dbObjects = $record->GetList($fcv_array, $sortBy, $ascending, $limit);
+ return $dbObjects;
+ }
+
+
+ /**
+ * Makes this the parent of all record objects in the record List array. Any existing record will become orphan(s)
+ * @return null
+ */
+ function SetRecordList(&$list)
+ {
+ $this->_recordList = array();
+ $existingRecordList = $this->GetRecordList();
+ foreach ($existingRecordList as $record)
+ {
+ $record->userId = '';
+ $record->Save(false);
+ }
+ $this->_recordList = $list;
+ }
+
+
+ /**
+ * Associates the record object to this one
+ * @return
+ */
+ function AddRecord(&$record)
+ {
+ $record->userId = $this->userId;
+ $found = false;
+ foreach($this->_recordList as $record2)
+ {
+ if ($record->recordId > 0 && $record->recordId == $record2->recordId)
+ {
+ $found = true;
+ break;
+ }
+ }
+ if (!$found)
+ {
+ $this->_recordList[] = $record;
+ }
+ }
+
+
+ /**
+ * Gets a list of onetimepassword objects associated to this one
+ * @param multidimensional array {("field", "comparator", "value"), ("field", "comparator", "value"), ...}
+ * @param string $sortBy
+ * @param boolean $ascending
+ * @param int limit
+ * @return array of onetimepassword objects
+ */
+ function GetOnetimepasswordList($fcv_array = array(), $sortBy='', $ascending=true, $limit='')
+ {
+ $onetimepassword = new onetimepassword();
+ $fcv_array[] = array("userId", "=", $this->userId);
+ $dbObjects = $onetimepassword->GetList($fcv_array, $sortBy, $ascending, $limit);
+ return $dbObjects;
+ }
+
+
+ /**
+ * Makes this the parent of all onetimepassword objects in the onetimepassword List array. Any existing onetimepassword will become orphan(s)
+ * @return null
+ */
+ function SetOnetimepasswordList(&$list)
+ {
+ $this->_onetimepasswordList = array();
+ $existingOnetimepasswordList = $this->GetOnetimepasswordList();
+ foreach ($existingOnetimepasswordList as $onetimepassword)
+ {
+ $onetimepassword->userId = '';
+ $onetimepassword->Save(false);
+ }
+ $this->_onetimepasswordList = $list;
+ }
+
+
+ /**
+ * Associates the onetimepassword object to this one
+ * @return
+ */
+ function AddOnetimepassword(&$onetimepassword)
+ {
+ $onetimepassword->userId = $this->userId;
+ $found = false;
+ foreach($this->_onetimepasswordList as $onetimepassword2)
+ {
+ if ($onetimepassword->onetimepasswordId > 0 && $onetimepassword->onetimepasswordId == $onetimepassword2->onetimepasswordId)
+ {
+ $found = true;
+ break;
+ }
+ }
+ if (!$found)
+ {
+ $this->_onetimepasswordList[] = $onetimepassword;
+ }
+ }
+}
+?> \ No newline at end of file