Advertisement
Guest User

Untitled

a guest
May 27th, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.07 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Model\Facades;
  4.  
  5. class UserFacade extends \Nette\Object {
  6.  
  7.     /** @var \Kdyby\Doctrine\EntityManager */
  8.     public $em;
  9.  
  10.     /** @var \Kdyby\Doctrine\EntityRepository */
  11.     public $model;
  12.  
  13.     /** @var \Nette\Http\Request */
  14.     public $httpRequest;
  15.  
  16.    
  17.    
  18.     /**
  19.      * KonÅ¡truktor
  20.      *
  21.      * @param \Kdyby\Doctrine\EntityManager $em
  22.      * @param \Nette\Http\Request $httpRequest
  23.      */
  24.     function __construct(\Kdyby\Doctrine\EntityManager $em, \Nette\Http\Request $httpRequest) {
  25.         $this->em = $em;
  26.         $this->model = $em->getRepository(\App\Model\User::class);
  27.         $this->httpRequest = $httpRequest;
  28.     }
  29.  
  30.    
  31.     /**
  32.      * @param int $id
  33.      * @return \App\Model\User
  34.      */
  35.     public function byId($id) {
  36.         return $this->model->find($id);
  37.     }
  38.  
  39.    
  40.     /**
  41.      * @param string $email
  42.      * @return \App\Model\User
  43.      */
  44.     public function byEmail($email) {
  45.         return $this->model->findOneBy(['email' => $email]);
  46.     }
  47.  
  48.    
  49.     /**
  50.      * @param string $username
  51.      * @return \App\Model\User
  52.      */
  53.     public function byUserName($username) {
  54.         return $this->model->findOneBy(['username' => $username]);
  55.     }
  56.    
  57.    
  58.     /**
  59.      * @param integer $id
  60.      * @return \App\Model\User
  61.      */
  62.     public function login($id) {
  63.         $user = $this->byId($id);
  64.         if (!is_object($user)) return false;
  65.        
  66.         $user->status = \App\Model\User::STATUS_LOGIN;
  67.         $this->em->flush();
  68.        
  69.         return $user;
  70.     }
  71.    
  72.     /**
  73.      * @param integer $id
  74.      * @return \App\Model\User
  75.      */
  76.     public function logout($id) {
  77.         $user = $this->byId($id);
  78.         if (!is_object($user)) return false;
  79.        
  80.         $user->status = \App\Model\User::STATUS_LOGOUT;
  81.         $user->last_time = new \DateTime();
  82.         $this->em->flush();
  83.        
  84.         return $user;
  85.     }
  86.    
  87.    
  88.     /**
  89.      * Method for create user
  90.      * @param \Nette\Utils\ArrayHash $values
  91.      * @return \App\Model\User
  92.      */
  93.     public function add(\Nette\Utils\ArrayHash $values) {
  94.         $user = new \App\Model\User();
  95.         $user->username = $values->username;
  96.         $user->email = $values->email;
  97.         $user->password = \Nette\Security\Passwords::hash($values->password1);
  98.         $user->last_ip = $this->httpRequest->getRemoteAddress();
  99.         $user->reg_ip = $this->httpRequest->getRemoteAddress();
  100.         $user->reg_time = new \DateTime();
  101.         $user->last_time = new \DateTime();
  102.         $user->last_activity = new \DateTime();
  103.         $user->status = \App\Model\User::STATUS_LOGOUT;
  104.         $user->flag = \App\Model\User::FLAG_ACTIVE;
  105.        
  106.         $this->em->persist($user);
  107.         $this->em->flush();
  108.        
  109.         return $user;
  110.     }
  111.    
  112.    
  113.     /**
  114.      * Method for update user
  115.      * @param \Nette\Utils\ArrayHash $values
  116.      * @return \App\Model\User
  117.      */
  118.     public function edit(\Nette\Utils\ArrayHash $values, $id) {
  119.         $user = $this->byId($id);
  120.         if(!is_object($user)) {
  121.             throw new UserFacadeException("Doesnt't exist user!");
  122.         }
  123.        
  124.         $user->username = $values->username;
  125.         $user->email = $values->email;
  126.         if(!\Nette\Utils\Validators::isNone($values->password1)) {
  127.             $user->password = \Nette\Security\Passwords::hash($values->password1);
  128.         }
  129.        
  130.         $this->em->flush();
  131.        
  132.         return $user;
  133.     }
  134.    
  135.    
  136.     /**
  137.      * Return query builder for grid
  138.      * @return \Kdyby\Doctrine\QueryBuilder
  139.      */
  140.     public function getQueryBuilder() {
  141.         return $this->model->createQueryBuilder('u');
  142.     }
  143.    
  144.    
  145.     /**
  146.      * Remove user
  147.      * @param integer $id
  148.      * @return boolean
  149.      */
  150.     public function remove($id) {
  151.         $user = $this->byId($id);
  152.         if(!is_object($user)) return false;
  153.        
  154.         $this->em->remove($user);
  155.         $this->em->flush();
  156.        
  157.         return true;
  158.     }
  159. }
  160.  
  161. class UserFacadeException extends \Exception {
  162.    
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement