/** * Vrne Id uporabniške opcije, če le-ta obstaja * * @param \App\Entity\Option $option ime opcije * @param \Aaa\Entity\User $user uprabniško ime * @return Id ali null */ public function getOptionValuesUserId($option, $user) { $optval = $this->findOneBy(["user" => $user->getId(), "option" => $option->getId(), "global" => false]); if (is_null($optval)) { $id = null; } else { $id = $optval->getId(); } return $id; }
/** * Dodajanje skupin * @param EntityManager $em * @param array $valarray */ public function populateUser($em, $val) { $rep = $em->getRepository('\\Aaa\\Entity\\User'); $rr = $em->getRepository('\\Aaa\\Entity\\Role'); $o = $rep->findOneByEmail($val['email']); $nov = false; if (!$o) { $o = new User(); $o->setEmail($val['email']); $nov = true; $password = '******' . uniqid() . uniqid(); $o->setPassword($password); echo "User {$val['name']} geslo {$password}\n"; } $o->setName($val['name']); $o->setEnabled($val['enabled']); if ($val['roles']) { $rr->azurirajNames($o, $val['roles']); } if ($nov) { $rep->create($o); } else { $rep->update($o); } $this->addReference('User-' . $val['email'], $o); return; }
/** * Vrne podatke o uporabniku pripravljene za pošiljanje na klienta * * @param \Aaa\Entity\User $identity */ protected function getUserData($identity) { $roles = []; $permissions = []; foreach ($identity->getRoles() as $role) { $roles[] = $role->getName(); foreach ($role->getPermissions() as $perm) { $permissions[] = $perm->getName(); } } return ['id' => $identity->getId(), 'name' => $identity->getName(), 'username' => $identity->getEmail(), 'defaultRoute' => $identity->getDefaultRoute(), 'defaultRouteParams' => $identity->getDefaultRouteParams(), 'roles' => $roles, 'permissions' => $permissions]; }
/** * Shrani array sprememb entitet v bazo * * @param array $changes */ protected function saveChanges($changes) { $sql = "INSERT INTO {$this->tableName} (razred, objectId, upor, datum, tip, data)\n VALUES (?, ?, ?, ?, ?, ?)"; $stmt = $this->conn->prepare($sql); $date = date_create("now")->format($this->platform->getDateTimeFormatString()); $user = $this->identity ? $this->identity->getId() : null; foreach ($changes as $objectId => $change) { $class = get_class($change['entity']); $type = $change['type']; $data = serialize($change['data']); $stmt->bindValue(1, $class, \PDO::PARAM_STR); $stmt->bindValue(2, $objectId, \PDO::PARAM_STR); $stmt->bindValue(3, $user, \PDO::PARAM_STR); $stmt->bindValue(4, $date, \PDO::PARAM_STR); $stmt->bindValue(5, $type, \PDO::PARAM_STR); $stmt->bindValue(6, $data, \PDO::PARAM_STR); $stmt->execute(); } }
/** * doda/ažurira seznam role objektov * * @param string[] $names * @return boolean */ public function azurirajNames(User $user, $names) { foreach ($names as $name) { $role = $this->findOneByName($name); if ($role) { if (!$user->getRoles()->contains($role)) { $user->addRoles($role); } } } return true; }