Users: user_manager.ajax.php replace status with role

pull/4014/head^2
Julio 4 years ago
parent 0ade09de75
commit 23e5cb09ee
  1. 4
      public/main/inc/ajax/user_manager.ajax.php
  2. 9
      src/CoreBundle/Entity/User.php
  3. 8
      tests/CoreBundle/Repository/Node/UserRepositoryTest.php

@ -250,6 +250,8 @@ switch ($action) {
$status = isset($_REQUEST['status']) ? (int) $_REQUEST['status'] : DRH;
$active = isset($_REQUEST['active']) ? (int) $_REQUEST['active'] : null;
$role = User::getRoleFromStatus($status);
$criteria = new Criteria();
$criteria
->where(
@ -260,7 +262,7 @@ switch ($action) {
)
)
->andWhere(
Criteria::expr()->eq('status', $status)
Criteria::expr()->in('roles', [$role])
);
if (null !== $active) {

@ -1757,9 +1757,9 @@ class User implements UserInterface, EquatableInterface, ResourceInterface, Reso
return $this->hasRole('ROLE_SUPER_ADMIN');
}
public function setRoleFromStatus(int $status): void
public static function getRoleFromStatus(int $status): string
{
$role = match ($status) {
return match ($status) {
COURSEMANAGER => 'ROLE_TEACHER',
STUDENT => 'ROLE_STUDENT',
DRH => 'ROLE_RRHH',
@ -1768,6 +1768,11 @@ class User implements UserInterface, EquatableInterface, ResourceInterface, Reso
INVITEE => 'ROLE_INVITEE',
default => 'ROLE_USER',
};
}
public function setRoleFromStatus(int $status): void
{
$role = self::getRoleFromStatus($status);
$this->addRole($role);
}

@ -26,7 +26,6 @@ class UserRepositoryTest extends AbstractApiTest
public function testCreateUser(): void
{
self::bootKernel();
$student = $this->createUser('student');
$userRepo = self::getContainer()->get(UserRepository::class);
@ -38,6 +37,13 @@ class UserRepositoryTest extends AbstractApiTest
$this->assertCount(1, $student->getRoles());
$this->assertContains('ROLE_USER', $student->getRoles());
$this->assertSame('ROLE_TEACHER', User::getRoleFromStatus(1));
$this->assertSame('ROLE_STUDENT', User::getRoleFromStatus(5));
$this->assertSame('ROLE_RRHH', User::getRoleFromStatus(4));
$this->assertSame('ROLE_SESSION_MANAGER', User::getRoleFromStatus(3));
$this->assertSame('ROLE_STUDENT_BOSS', User::getRoleFromStatus(17));
$this->assertSame('ROLE_INVITEE', User::getRoleFromStatus(20));
$student->addRole('ROLE_STUDENT');
$userRepo->update($student);

Loading…
Cancel
Save