Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Model\Facades;
- class UserFacade extends \Nette\Object {
- /** @var \Kdyby\Doctrine\EntityManager */
- public $em;
- /** @var \Kdyby\Doctrine\EntityRepository */
- public $model;
- /** @var \Nette\Http\Request */
- public $httpRequest;
- /**
- * Konštruktor
- *
- * @param \Kdyby\Doctrine\EntityManager $em
- * @param \Nette\Http\Request $httpRequest
- */
- function __construct(\Kdyby\Doctrine\EntityManager $em, \Nette\Http\Request $httpRequest) {
- $this->em = $em;
- $this->model = $em->getRepository(\App\Model\User::class);
- $this->httpRequest = $httpRequest;
- }
- /**
- * @param int $id
- * @return \App\Model\User
- */
- public function byId($id) {
- return $this->model->find($id);
- }
- /**
- * @param string $email
- * @return \App\Model\User
- */
- public function byEmail($email) {
- return $this->model->findOneBy(['email' => $email]);
- }
- /**
- * @param string $username
- * @return \App\Model\User
- */
- public function byUserName($username) {
- return $this->model->findOneBy(['username' => $username]);
- }
- /**
- * @param integer $id
- * @return \App\Model\User
- */
- public function login($id) {
- $user = $this->byId($id);
- if (!is_object($user)) return false;
- $user->status = \App\Model\User::STATUS_LOGIN;
- $this->em->flush();
- return $user;
- }
- /**
- * @param integer $id
- * @return \App\Model\User
- */
- public function logout($id) {
- $user = $this->byId($id);
- if (!is_object($user)) return false;
- $user->status = \App\Model\User::STATUS_LOGOUT;
- $user->last_time = new \DateTime();
- $this->em->flush();
- return $user;
- }
- /**
- * Method for create user
- * @param \Nette\Utils\ArrayHash $values
- * @return \App\Model\User
- */
- public function add(\Nette\Utils\ArrayHash $values) {
- $user = new \App\Model\User();
- $user->username = $values->username;
- $user->email = $values->email;
- $user->password = \Nette\Security\Passwords::hash($values->password1);
- $user->last_ip = $this->httpRequest->getRemoteAddress();
- $user->reg_ip = $this->httpRequest->getRemoteAddress();
- $user->reg_time = new \DateTime();
- $user->last_time = new \DateTime();
- $user->last_activity = new \DateTime();
- $user->status = \App\Model\User::STATUS_LOGOUT;
- $user->flag = \App\Model\User::FLAG_ACTIVE;
- $this->em->persist($user);
- $this->em->flush();
- return $user;
- }
- /**
- * Method for update user
- * @param \Nette\Utils\ArrayHash $values
- * @return \App\Model\User
- */
- public function edit(\Nette\Utils\ArrayHash $values, $id) {
- $user = $this->byId($id);
- if(!is_object($user)) {
- throw new UserFacadeException("Doesnt't exist user!");
- }
- $user->username = $values->username;
- $user->email = $values->email;
- if(!\Nette\Utils\Validators::isNone($values->password1)) {
- $user->password = \Nette\Security\Passwords::hash($values->password1);
- }
- $this->em->flush();
- return $user;
- }
- /**
- * Return query builder for grid
- * @return \Kdyby\Doctrine\QueryBuilder
- */
- public function getQueryBuilder() {
- return $this->model->createQueryBuilder('u');
- }
- /**
- * Remove user
- * @param integer $id
- * @return boolean
- */
- public function remove($id) {
- $user = $this->byId($id);
- if(!is_object($user)) return false;
- $this->em->remove($user);
- $this->em->flush();
- return true;
- }
- }
- class UserFacadeException extends \Exception {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement