/** * Checks whether the given user has the given permission. * * Returns TRUE in case the given user is authenticated. * Otherwise returns FALSE. * * @param \Ableron\Modules\Core\Model\Entities\UserEntity $user The user to check * @param \Ableron\Modules\Core\Model\Entities\PermissionEntity $permission The permission to check * @return bool */ public static function hasPermission(UserEntity $user, PermissionEntity $permission) { foreach ($user->getRoles() as $role) { if ($role->getPermissions()->contains($permission)) { return true; } } return false; }
/** * Tests whether the constructor works as expected. * * @return void */ public function testConstructorSetsParametersCorrectly() { $user = new UserEntity('username', 'passwordHash', 'emailAddress', 'firstName', 'lastName'); $this->assertNull($user->getId()); $this->assertSame('username', $user->getUsername()); $this->assertSame('passwordHash', $user->getPasswordHash()); $this->assertSame('emailAddress', $user->getEmailAddress()); $this->assertSame('firstName', $user->getFirstName()); $this->assertSame('lastName', $user->getLastName()); $this->assertSame('firstName lastName', $user->getDisplayName()); $this->assertEmpty($user->getRoles()->count()); }
/** * Tests whether findByUsername works as expected. * * @return void */ public function testFindByUsername() { // define username $username = '******'; // create user entity $user = new UserEntity($username, '', '', '', ''); // verify user does not exist $this->assertNull(Application::getPersistenceManager()->getRepository('UserEntity')->findByUsername($user->getUsername())); // create user Application::getPersistenceManager()->getEntityManager()->persist($user); Application::getPersistenceManager()->getEntityManager()->flush(); // verify user exist $userFromDb = Application::getPersistenceManager()->getRepository('UserEntity')->findByUsername($user->getUsername()); $this->assertNotNull($userFromDb); $this->assertSame($username, $userFromDb->getUsername()); $this->assertNotNull($username, $userFromDb->getId()); // remove user Application::getPersistenceManager()->getEntityManager()->remove($user); Application::getPersistenceManager()->getEntityManager()->flush(); }
/** * Creates an admin account. * * @return void */ private function createAdminAccount() { // create user entity $user = new UserEntity($this->getInstaller()->getInstallationParameter('admin.username'), Password::hash($this->getInstaller()->getInstallationParameter('admin.password')), $this->getInstaller()->getInstallationParameter('admin.emailAddress'), $this->getInstaller()->getInstallationParameter('admin.firstName'), $this->getInstaller()->getInstallationParameter('admin.lastName')); // assign root role $user->getRoles()->add(Application::getPersistenceManager()->getRepository('RoleEntity')->findOneBy(array('name' => 'Root'))); // write changes to database Application::getPersistenceManager()->getEntityManager()->persist($user); Application::getPersistenceManager()->getEntityManager()->flush(); }