/** * @param user User * @param $token Token * @return UserDto */ public function mapUserToDto(User $user, $token = null) { $userDto = new UserDto(); $userDto->setId($user->getId()); $userDto->setUserName($user->getUsername()); $userDto->setEmail($user->getEmail()); $userDto->setFirstName($user->getFirstName()); $userDto->setLastName($user->getLastName()); $userDto->setPicture($user->getPicture()); $userDto->setFile($user->getFile()); $userDto->setDisplay($user->getDisplay()); $userDto->setRole($this->roleMapper->mapUserRoleToDto($user->getRole())); $userDto->setToken($token); return $userDto; }
/** * Save the user in the db * @param User $user */ function saveDatabase(User $user) { $save = array(); $userExists = $this->userExists($user->getID()); // Common fields $save['PIN'] = $user->getPIN(); $save['name'] = $user->getName(); // Update if it exists if ($userExists) { $primary = array('userID' => $user->getID()); $this->getDB()->update(self::TABLE_USER, $save, $primary); } else { $save['userID'] = $user->getID(); $save['role'] = $user instanceof Supervisor ? 'supervisor' : 'tutor'; $this->getDB()->insert(self::TABLE_USER, $save); } // Fields for tutor if ($user instanceof Tutor) { // Save schedule self::$scheduleManager->save($user->getSchedule(), $user->getID()); // Save timesheet TODO $save = array(); $save['email'] = $user->getEmail(); $save['phone'] = $user->getPhone(); $save['bio'] = $user->getBio(); $save['picture'] = $user->getPicture(); // Update if it exists if ($userExists) { $primary = array('userID' => $user->getID()); $this->getDB()->update(self::TABLE_TUTOR, $save, $primary); } else { $save['userID'] = $user->getID(); $this->getDB()->insert(self::TABLE_TUTOR, $save); } } }
/** Method that fetches users from database * @param string $column Column name of the data to be fetched * @param string $condition Additional condition e.g category_id > 9 * @param string $sort column name to be used as sort parameter * @param Object $filesObj Instance of Files class * @return JSON JSON encoded user details */ public function fetch($column = "*", $condition = "", $sort = "id", $filesObj = null) { $sql = "SELECT {$column} FROM {$this->tableName} ORDER BY {$sort}"; if (!empty($condition)) { $sql = "SELECT {$column} FROM {$this->tableName} WHERE {$condition} ORDER BY {$sort}"; } $data = $this->dbObj->fetchAssoc($sql); $result = array(); $userPicture = ''; if (count($data) > 0) { foreach ($data as $r) { $userPicture = $r['picture']; if ($filesObj != null) { $userPicture = User::getPicture($filesObj, $r['picture'], $r['id']); } $result[] = array("id" => $r['id'], "firstName" => utf8_encode($r['firstname']), "lastName" => utf8_encode($r['lastname']), 'email' => utf8_encode($r['email']), 'description' => utf8_encode($r['description']), 'picture' => utf8_encode($userPicture), 'phone' => utf8_encode($r['phone1']), 'address' => utf8_encode($r['address']), 'userName' => utf8_encode($r['username']), 'passWord' => $r['password'], 'dateRegistered' => utf8_encode($r['timecreated']), 'status' => $r['confirmed']); } $json = array("status" => 1, "info" => $result); } else { $json = array("status" => 2, "msg" => "Empty result. " . mysqli_error($this->dbObj->connection)); } $this->dbObj->close(); header('Content-type: application/json'); return json_encode($json); }
/** * Index function * * Currently the index consists of following possible requests: * checkemail - prints either "0" or "1" depending on e-mail validity * checkhandle - like "checkemail" with user handle * register - registration form to page content * * @param void */ public function index() { // index is called when http request = ./user $request = PRequest::get()->request; if (!isset($request[1])) { $request[1] = ''; } switch ($request[1]) { case 'avatar': PRequest::ignoreCurrentRequest(); if (!isset($request[2]) || !preg_match(User::HANDLE_PREGEXP, $request[2]) || !($userId = $this->_model->handleInUse($request[2]))) { PPHP::PExit(); } $this->_view->avatar($userId); break; // checks e-mail address for validity and availability // checks e-mail address for validity and availability case 'checkemail': // ignore current request, so we can use the last request PRequest::ignoreCurrentRequest(); if (!isset($_GET['e'])) { echo '0'; PPHP::PExit(); } if (!PFunctions::isEmailAddress($_GET['e'])) { echo '0'; PPHP::PExit(); } echo (bool) (!$this->_model->emailInUse($_GET['e'])); PPHP::PExit(); break; // checks handle for validity and availability // checks handle for validity and availability case 'checkhandle': // ignore current request, so we can use the last request PRequest::ignoreCurrentRequest(); if (!isset($request[2])) { echo '0'; PPHP::PExit(); } if (!preg_match(User::HANDLE_PREGEXP, $request[2])) { echo '0'; PPHP::PExit(); } if (strpos($request[2], 'xn--') !== false) { // Don't allow IDN-Prefixes echo '0'; PPHP::PExit(); } echo (bool) (!$this->_model->handleInUse($request[2])); PPHP::PExit(); break; // confirms a registration // confirms a registration case 'confirm': if (!isset($request[2]) || !isset($request[3]) || !preg_match(User::HANDLE_PREGEXP, $request[2]) || !$this->_model->handleInUse($request[2]) || !preg_match('/^[a-f0-9]{16}$/', $request[3])) { $error = true; } else { if ($this->_model->confirmRegister($request[2], $request[3])) { $error = false; } else { $error = true; } } ob_start(); $this->_view->registerConfirm($error); $str = ob_get_contents(); ob_end_clean(); $P = PVars::getObj('page'); $P->content .= $str; break; case 'find': $res = $this->_model->find($_GET['q']); ob_start(); $this->_view->searchResult($res); $str = ob_get_contents(); ob_end_clean(); $P = PVars::getObj('page'); $P->content .= $str; break; case 'friends': if (!($User = APP_User::login())) { return false; } $friends = $this->_model->getFriends($User->getId()); ob_start(); $this->_view->friends($friends); $str = ob_get_contents(); ob_end_clean(); $P = PVars::getObj('page'); $P->content .= $str; break; case 'logout': $this->_model->logout(); header("Location: " . PVars::getObj('env')->baseuri); break; // waiting approval message // waiting approval message case 'waitingapproval': // now the teaser content ob_start(); $this->_view->ShowInfoMessage('', ''); $str = ob_get_contents(); $Page = PVars::getObj('page'); $Page->teaserBar .= $str; ob_end_clean(); // now the message content ob_start(); $this->_view->ShowInfoMessage('WaitingForApprovalText', 'WaitingForApprovalTitle'); $str = ob_get_contents(); ob_end_clean(); $P = PVars::getObj('page'); $P->content .= $str; break; case 'settings': ob_start(); $this->_view->settingsForm(); $str = ob_get_contents(); ob_end_clean(); $P = PVars::getObj('page'); $P->content .= $str; break; case 'password': ob_start(); $this->_view->customStyles(); $str = ob_get_contents(); $Page = PVars::getObj('page'); $Page->addStyles .= $str; ob_end_clean(); // now the teaser content ob_start(); $this->_view->teaser(); $str = ob_get_contents(); $Page = PVars::getObj('page'); $Page->teaserBar .= $str; ob_end_clean(); // now the content on the right ob_start(); $this->_view->rightContent(); $str = ob_get_contents(); $Page = PVars::getObj('page'); $Page->rContent .= $str; ob_end_clean(); // main content ob_start(); $this->_view->passwordForm(); $str = ob_get_contents(); $P = PVars::getObj('page'); $P->content .= $str; ob_end_clean(); break; default: if (preg_match(User::HANDLE_PREGEXP, $request[1])) { if (!isset($request[2])) { $request[2] = ''; } switch ($request[2]) { case 'pic': if (!($User = APP_User::login())) { return false; } ob_start(); $picture = $this->_model->getPicture($request[1]); $this->_view->picture($picture); $str = ob_get_contents(); ob_end_clean(); $P = PVars::getObj('page'); $P->content .= $str; break; default: // redirects to the old bw-based profile header("Location: " . PVars::getObj('env')->baseuri . "bw/member.php?cid=" . $request[1]); // disabled TB-based userpage for now /* ob_start(); $this->_view->userPage($request[1]); $str = ob_get_contents(); ob_end_clean(); $P = PVars::getObj('page'); $P->content .= $str; */ break; } } } }
?> <li id="fb-status" onClick="Interface.loadModel('profile', '<?php echo User::getId(); ?> ')"> <h3><?php echo User::getUsername(); ?> </h3> </li> <li id="fb-profile-picture" onClick="Interface.loadModel('profile', '<?php echo User::getId(); ?> ')"> <img src="<?php echo User::getPicture(); ?> "/> </li> <?php } ?> </ul> </nav> <div id="news-bar"> <p><a>Mutopedia users :</a> <i>The site is in Beta version, the updates are performed regularly and are not necessarily advertised if we think it is not, so do not hesitate to return to the site from time to time!</i></p> </div> <nav id="menu-nav"> <ul>