$value) { $criteria->addCondition($item.'='.Yii::app()->db->quoteValue($value)); } } $data = $this->findAll($criteria); return $data; } /** * * * @param mixed $postuserid */ function parentAndUser($postuserid) { $user = Yii::app()->db->createCommand() ->select('a.users_name, a.full_name, a.email, a.uid, b.users_name AS parent') ->limit(1) ->where('a.uid = :postuserid') ->from("{{users}} a") ->leftJoin('{{users}} AS b', 'a.parent_id = b.uid') ->bindParam(":postuserid", $postuserid, PDO::PARAM_INT) ->queryRow(); return $user; } /** * Returns onetime password * * @access public * @return string */ public function getOTPwd($user) { $this->db->select('uid, users_name, password, one_time_pw, dateformat, full_name, htmleditormode'); $this->db->where('users_name',$user); $data = $this->db->get('users',1); return $data; } /** * Deletes onetime password * * @access public * @return string */ public function deleteOTPwd($user) { $data = array( 'one_time_pw' => '' ); $this->db->where('users_name',$user); $this->db->update('users',$data); } /** * Creates new user * * @access public * @return string */ public static function insertUser($new_user, $new_pass,$new_full_name,$parent_user,$new_email) { $oUser = new self; $oUser->users_name = $new_user; $oUser->password = hash('sha256', $new_pass); $oUser->full_name = $new_full_name; $oUser->parent_id = $parent_user; $oUser->lang = 'auto'; $oUser->email = $new_email; if ($oUser->save()) { return $oUser->uid; } else{ return false; } } /** * This method is invoked before saving a record (after validation, if any). * The default implementation raises the {@link onBeforeSave} event. * You may override this method to do any preparation work for record saving. * Use {@link isNewRecord} to determine whether the saving is * for inserting or updating record. * Make sure you call the parent implementation so that the event is raised properly. * @return boolean whether the saving should be executed. Defaults to true. */ public function beforeSave() { // Postgres delivers bytea fields as streams :-o - if this is not done it looks like Postgres saves something unexpected if (gettype($this->password)=='resource') { $this->password=stream_get_contents($this->password,-1,0); } return parent::beforeSave(); } /** * Delete user * * @param int $iUserID The User ID to delete * @return mixed */ function deleteUser($iUserID) { $iUserID= (int)$iUserID; $oUser=$this->findByPk($iUserID); return (bool) $oUser->delete(); } /** * Returns user share settings * * @access public * @return string */ public function getShareSetting() { $this->db->where(array("uid"=>$this->session->userdata('loginID'))); $result= $this->db->get('users'); return $result->row(); } /** * Returns full name of user * * @access public * @return string */ public function getName($userid) { static $aOwnerCache = array(); if (array_key_exists($userid, $aOwnerCache)) { $result = $aOwnerCache[$userid]; } else { $result = Yii::app()->db->createCommand()->select('full_name')->from('{{users}}')->where("uid = :userid")->bindParam(":userid", $userid, PDO::PARAM_INT)->queryAll(); $aOwnerCache[$userid] = $result; } return $result; } public function getuidfromparentid($parentid) { return Yii::app()->db->createCommand()->select('uid')->from('{{users}}')->where('parent_id = :parent_id')->bindParam(":parent_id", $parentid, PDO::PARAM_INT)->queryRow(); } /** * Returns id of user * * @access public * @return string */ public function getID($sUserName) { $oUser = User::model()->findByAttributes(array( 'users_name' => $sUserName )); if ($oUser) { return $oUser->uid; } } /** * Updates user password hash * * @param int $iUserID The User ID * @param string $sPassword The clear text password */ public function updatePassword($iUserID, $sPassword) { return $this->updateByPk($iUserID, array('password' => hash('sha256', $sPassword))); } /** * Adds user record * * @access public * @return string */ public function insertRecords($data) { return $this->db->insert('users',$data); } /** * Returns User ID common in Survey_Permissions and User_in_groups * * @access public * @return CDbDataReader Object */ public function getCommonUID($surveyid, $postusergroupid) { $query2 = "SELECT b.uid FROM (SELECT uid FROM {{permissions}} WHERE entity_id = :surveyid AND entity = 'survey') AS c RIGHT JOIN {{user_in_groups}} AS b ON b.uid = c.uid WHERE c.uid IS NULL AND b.ugid = :postugid"; return Yii::app()->db->createCommand($query2)->bindParam(":surveyid", $surveyid, PDO::PARAM_INT)->bindParam(":postugid", $postusergroupid, PDO::PARAM_INT)->query(); //Checked } public function relations() { return array( 'permissions' => array(self::HAS_MANY, 'Permission', 'uid') ); } }