123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- <?php
- namespace Tree\Fixture;
- use Doctrine\ORM\Mapping as ORM;
- /**
- * @ORM\Entity(repositoryClass="Gedmo\Tree\Entity\Repository\NestedTreeRepository")
- * @ORM\Table(name="user")
- */
- class User extends Role {
- const PASSWORD_SALT = 'dfJko$~346958rg!DFT]AEtzserf9giq)3/TAeg;aDFa43';
- /**
- * @ORM\Column(name="email", type="string", unique=true)
- * @var string
- */
- private $email;
- /**
- * @ORM\Column(name="password_hash", type="string", length=32)
- * @var string
- */
- private $passwordHash;
- /**
- * @ORM\Column(name="activation_code", type="string", length=12)
- * @var string
- */
- private $activationCode;
- /**
- * @param string $email
- * @param string $password
- */
- public function __construct($email, $password) {
- parent::__construct();
- $this
- ->setEmail($email)
- ->setPassword($password);
- }
- public function init() {
- $this->setActivationCode($this->generateString(12));
- }
- /**
- * Generates a random password
- *
- * @param int $length
- * @return string
- */
- public function generateString($length = 8) {
- $length = (int) $length;
- if ($length < 0) {
- throw new \Exception("Invalid password length '$length'");
- }
- $set = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
- $num = strlen($set);
- $ret = '';
- for ($i = 0; $i < $length; $i++) {
- $ret .= $set[rand(0, $num - 1)];
- }
- return $ret;
- }
- /**
- * Generates a password hash
- *
- * @param string $password
- * @return string
- */
- public function generatePasswordHash($password) {
- return md5($password . self::PASSWORD_SALT);
- }
- /**
- * @return string
- */
- public function getEmail() {
- return $this->email;
- }
- /**
- * @param string $email
- * @return User
- */
- public function setEmail($email) {
- $this->email = $email;
- $this->setRoleId($email);
- return $this;
- }
- /**
- * @return string
- */
- public function getPasswordHash() {
- return $this->passwordHash;
- }
- /**
- * @param string $password
- * @return User
- */
- public function setPassword($password) {
- $this->passwordHash = $this->generatePasswordHash(trim($password));
- return $this;
- }
- /**
- * @return string
- */
- public function getActivationCode() {
- return $this->activationCode;
- }
- /**
- * @param string $activationCode
- * @return User
- */
- public function setActivationCode($activationCode) {
- $this->activationCode = $activationCode;
- return $this;
- }
- }
|