コード例 #1
0
 public static function getByUserId($db, $userId)
 {
     $sql = "SELECT `username`, `password_hash`, `email` FROM user WHERE username = :username";
     $sth = $db->prepare($sql);
     $sth->execute([":username" => $userId]);
     $result = $sth->fetchAll();
     if (!empty($result)) {
         $privUser = new PrivilegedUser();
         $privUser->id = $userId;
         $privUser->login = $result[0]['username'];
         $privUser->password = $result[0]["password_hash"];
         $privUser->email = $result[0]["email"];
         $privUser->initRoles();
         return $privUser;
     } else {
         return false;
     }
 }
コード例 #2
0
 protected function checkRolesForAction($action)
 {
     $reqRoles = $this->requiredRoles();
     $alterRegRoles = [];
     if ($reqRoles) {
         foreach ($reqRoles as $key => $value) {
             $alterRegRoles[strtolower($key . 'Action')] = $value;
         }
         if (array_key_exists($action = strtolower($action), $alterRegRoles)) {
             $roles = $alterRegRoles[$action];
             if (Session::get('user_id')) {
                 $user = PrivilegedUser::getUserRoleById(DB::init()->connect(), Session::get('user_id'));
             } else {
                 $user = ['role_id' => 5, 'role_name' => 'Guest'];
             }
             return in_array($user['role_id'], $roles);
         }
     }
     return TRUE;
 }
コード例 #3
0
 public function editUserAction()
 {
     $fc = FrontController::getInstance();
     $model = new AdminModel('Редактирование пользователя');
     $userModel = new UserUpdateTableModel();
     $userModel->setTable('user');
     if ($_SERVER['REQUEST_METHOD'] === 'POST') {
         $userModel->setData('userUpdate');
         $userModel->updateRecord();
         header('Location: /admin/profile/id/' . $userModel->getId());
         exit;
     } else {
         $id = filter_var($fc->getParams()['id'], FILTER_SANITIZE_NUMBER_INT);
         if (!$id) {
             header('Location: /admin/notFound');
             exit;
         }
         $userModel->setId($id);
         $user = [];
         $db = DB::init()->connect();
         $userModel->readRecordsById();
         $userModel->readUserAddress();
         $userModel->readUserPhones();
         $roles = PrivilegedUser::getUserRoleById($db, $id);
         $model->setData(['profile' => $userModel->getRecordsById(), 'contacts' => $userModel->getUserContacts(), 'role' => $roles, 'allRoles' => Role::getRoles($db), 'perms' => Role::getRolePerms($db, $roles['role_id'])->getPermissions()]);
     }
     $output = $model->render('../views/admin/user/editUser.php', 'admin');
     $fc->setPage($output);
 }