Example #1
0
 /**
  * @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);
         }
     }
 }
Example #3
0
 /** 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);
 }
Example #4
0
 /**
  * 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;
                 }
             }
     }
 }
Example #5
0
    ?>
			<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>