Skip to content
Snippets Groups Projects
UserController.php 2.1 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?php
    
    /**
    * Copyright Maarch since 2008 under licence GPLv3.
    * See LICENCE.txt file at the root folder for more details.
    * This file is part of Maarch software.
    *
    */
    
    /**
    * @brief User Controller
    * @author dev@maarch.org
    * @ingroup core
    */
    
    namespace Core\Controllers;
    
    use Psr\Http\Message\RequestInterface;
    use Psr\Http\Message\ResponseInterface;
    use Respect\Validation\Validator;
    use Core\Models\UserModel;
    
    class UserController
    {
        public function getCurrentUserInfos(RequestInterface $request, ResponseInterface $response)
        {
            if (empty($_SESSION['user']['UserId'])) {
                return $response->withStatus(401)->withJson(['errors' => 'User Not Connected']);
            }
    
    
            $user = UserModel::getById(['userId' => $_SESSION['user']['UserId'], 'select' => ['user_id', 'firstname', 'lastname', 'phone', 'mail', 'initials', 'thumbprint']]);
    
            $user['signatures'] = UserModel::getSignaturesById(['userId' => $_SESSION['user']['UserId']]);
            $user['emailSignatures'] = UserModel::getEmailSignaturesById(['userId' => $_SESSION['user']['UserId']]);
    
            $user['groups'] = UserModel::getGroupsById(['userId' => $_SESSION['user']['UserId']]);
            $user['entities'] = UserModel::getEntitiesById(['userId' => $_SESSION['user']['UserId']]);
    
    
            return $response->withJson($user);
        }
    
    
        public function update(RequestInterface $request, ResponseInterface $response, $aArgs)
        {
            $data = $request->getParams();
    
            if (!$this->checkNeededParameters(['data' => $data, 'needed' => ['user_id', 'firstname', 'lastname']])) {
                return $response->withStatus(400)->withJson(['errors' => 'Bad Request']);
            }
    
            $r = UserModel::update(['user' => $data]);
    
            if ($r) {
                return $response->withJson([]);
            } else {
                return $response->withStatus(500)->withJson(['errors' => 'User Update Error']);
            }
        }
    
        private function checkNeededParameters($aArgs = []) {
            foreach ($aArgs['needed'] as $value) {
                if (empty($aArgs['data'][$value])) {
                    return false;
                }
            }
    
            return true;
        }