コード例 #1
0
 /**
  * @param array[string] $parts
  * @param array[string] $mod
  * @return string
  */
 public static function main($parts, $mod)
 {
     $session = new \NekoPHP\Session('user');
     if ($session->get('id') !== null) {
         return $mod['twig']->render('profile.twig', ['warning' => 'You are already logged in', 'user' => new Models\User($session->get('id'))]);
     }
     return $mod['twig']->render('login.twig', ['form_url' => \NekoPHP\NekoPHP::getModuleUrl() . '/login']);
 }
コード例 #2
0
 /**
  * @param array[string] $parts
  * @param array[string] $mod
  * @return string
  */
 public static function main($parts, $mod)
 {
     if (Session::get('user_id') === null) {
         Session::setOnce('warning', "You aren't logged in");
         NekoPHP::redirect(NekoPHP::getModuleUrl() . '/login');
     }
     Session::set('user_id', null);
     Session::setOnce('success', 'You have been logged out');
     NekoPHP::redirect(NekoPHP::getBaseUrl());
 }
コード例 #3
0
 /**
  * @param array[string] $parts
  * @param array[string] $mod
  * @return string
  */
 public static function main($parts, $mod)
 {
     $user = Models\User::getByEmail($_POST['email']);
     if ($user === null || !$user->checkPassword($_POST['password'])) {
         return $mod['twig']->render('login.twig', ['error' => 'Username or password incorrect', 'form_url' => \NekoPHP\NekoPHP::getModuleUrl() . '/login']);
     }
     Session::set('user_id', $user->getId());
     Session::setOnce('success', "You have been logged in as {$user->getEmail()}");
     if (Session::existsOnce('login-redirect-to')) {
         return NekoPHP::redirect(Session::getOnce('login-redirect-to'));
     }
     return NekoPHP::redirect(NekoPHP::getModuleUrl() . '/profile');
 }
コード例 #4
0
 /**
  * @param array[string] $parts
  * @param array[string] $mod
  * @return string
  */
 public static function main($parts, $mod)
 {
     if (Session::get('user_id') === null) {
         Session::setOnce('error', 'You must be logged in to see this page');
         NekoPHP::redirect(NekoPHP::getModuleUrl() . '/login');
     }
     try {
         $user = new Models\User($parts[1] ?: Session::get('user_id'));
     } catch (\Exception $e) {
         http_response_code(404);
         return $mod['twig']->render('error/404.twig');
     }
     return $mod['twig']->render('profile.twig', ['user' => $user]);
 }
コード例 #5
0
 /**
  * @param array[string] $parts
  * @param array[string => mixed] $mod
  * @return string
  */
 public static function main($parts, $mod)
 {
     Models\User::checkPermissions($mod['cuser'], 'UserAdmin', true);
     $errors = [];
     if (empty($_POST['email'])) {
         $errors[] = 'No email address given';
     } elseif (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false) {
         $errors[] = 'Invalid email address';
     }
     if (empty($_POST['password']) || empty($_POST['password_confirm'])) {
         $errors[] = 'Both password fields need to be filled out';
     } elseif ($_POST['password'] !== $_POST['password_confirm']) {
         $errors[] = 'The passwords don\'t match';
     }
     if (count($errors) > 0) {
         Session::setOnce('error', $errors);
         return NekoPHP::redirect(NekoPHP::getModuleUrl() . '/create');
     }
     try {
         $user = new Models\User();
         $user->setEmail($_POST['email']);
         $user->setPassword($_POST['password']);
         if (!$user->create()) {
             throw new \Exception($user->exception()->getMessage());
         }
         $user->getInfo()->setRealname($_POST['realname']);
         $user->getInfo()->update();
         $user->getPermissions()->setUserAdmin(isset($_POST['permission_user_admin']));
         $user->getPermissions()->update();
         // @todo: send out an email to the newly created user
     } catch (\Exception $e) {
         Session::setOnce('error', $e->getMessage());
         return NekoPHP::redirect(NekoPHP::getModuleUrl() . '/create/');
     }
     Session::setOnce('success', 'Account created');
     return NekoPHP::redirect(NekoPHP::getModuleUrl() . '/profile/' . $user->getId());
 }
コード例 #6
0
 /**
  * @param array[string] $parts
  * @param array[string] $mod
  * @return string
  */
 public static function main($parts, $mod)
 {
     NekoPHP::redirect(NekoPHP::getModuleUrl() . '/profile');
 }
コード例 #7
0
 /**
  * @param array[string] $parts
  * @param array[string] $mod
  * @return string
  */
 public static function main($parts, $mod)
 {
     Models\User::checkPermission($mod['cuser'], 'UserAdmin', true);
     return $mod['twig']->render('create.twig', ['form_url' => \NekoPHP\NekoPHP::getModuleUrl() . '/create']);
 }