Skip to content

Commit

Permalink
Simplify permissions structure (#268)
Browse files Browse the repository at this point in the history
  • Loading branch information
jskowronski39 authored Aug 14, 2023
1 parent 5590161 commit 92ef575
Show file tree
Hide file tree
Showing 64 changed files with 391 additions and 848 deletions.
14 changes: 0 additions & 14 deletions config/doctrine/Permissions/AbstractManagementPermissions.orm.xml

This file was deleted.

50 changes: 43 additions & 7 deletions config/doctrine/Permissions/AbstractPermissions.orm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,49 @@
xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
https://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd">

<entity name="App\Entity\Permissions\AbstractPermissions" table="permissions" repository-class="App\Repository\Permissions\PermissionsRepository" inheritance-type="SINGLE_TABLE">
<embedded name="userManagementPermissions" class="App\Entity\Permissions\User\UserManagementPermissions" column-prefix="user_"/>
<embedded name="userGroupManagementPermissions" class="App\Entity\Permissions\UserGroup\UserGroupManagementPermissions" column-prefix="user_group_"/>
<embedded name="modManagementPermissions" class="App\Entity\Permissions\Mod\ModManagementPermissions" column-prefix="mod_"/>
<embedded name="modGroupManagementPermissions" class="App\Entity\Permissions\ModGroup\ModGroupManagementPermissions" column-prefix="mod_group_"/>
<embedded name="dlcManagementPermissions" class="App\Entity\Permissions\Dlc\DlcManagementPermissions" column-prefix="dlc_"/>
<embedded name="modListManagementPermissions" class="App\Entity\Permissions\ModList\ModListManagementPermissions" column-prefix="mod_list_"/>
<entity
name="App\Entity\Permissions\AbstractPermissions"
table="permissions"
repository-class="App\Repository\Permissions\PermissionsRepository"
inheritance-type="SINGLE_TABLE"
>
<!-- User -->
<field name="userList" type="boolean"/>
<field name="userUpdate" type="boolean"/>
<field name="userDelete" type="boolean"/>

<!-- User Group -->
<field name="userGroupList" type="boolean"/>
<field name="userGroupCreate" type="boolean"/>
<field name="userGroupUpdate" type="boolean"/>
<field name="userGroupDelete" type="boolean"/>

<!-- Mod -->
<field name="modList" type="boolean"/>
<field name="modCreate" type="boolean"/>
<field name="modUpdate" type="boolean"/>
<field name="modDelete" type="boolean"/>
<field name="modChangeStatus" type="boolean"/>

<!-- Mod Group -->
<field name="modGroupList" type="boolean"/>
<field name="modGroupCreate" type="boolean"/>
<field name="modGroupUpdate" type="boolean"/>
<field name="modGroupDelete" type="boolean"/>

<!-- Dlc -->
<field name="dlcList" type="boolean"/>
<field name="dlcCreate" type="boolean"/>
<field name="dlcUpdate" type="boolean"/>
<field name="dlcDelete" type="boolean"/>

<!-- Mod List -->
<field name="modListList" type="boolean"/>
<field name="modListCreate" type="boolean"/>
<field name="modListUpdate" type="boolean"/>
<field name="modListDelete" type="boolean"/>
<field name="modListCopy" type="boolean"/>
<field name="modListApprove" type="boolean"/>

<discriminator-column name="type" type="string" length="255"/>
<discriminator-map>
Expand Down

This file was deleted.

11 changes: 0 additions & 11 deletions config/doctrine/Permissions/Mod/ModManagementPermissions.orm.xml

This file was deleted.

This file was deleted.

This file was deleted.

13 changes: 0 additions & 13 deletions config/doctrine/Permissions/User/UserManagementPermissions.orm.xml

This file was deleted.

This file was deleted.

48 changes: 0 additions & 48 deletions config/packages/doctrine.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -66,54 +66,6 @@ doctrine:
dir: '%kernel.project_dir%/config/doctrine/Permissions'
prefix: 'App\Entity\Permissions'
alias: Permissions
UserPermissions:
is_bundle: false
type: xml
dir: '%kernel.project_dir%/config/doctrine/Permissions'
prefix: 'App\Entity\Permissions'
alias: UserPermissions
UserGroupPermissions:
is_bundle: false
type: xml
dir: '%kernel.project_dir%/config/doctrine/Permissions'
prefix: 'App\Entity\Permissions'
alias: UserGroupPermissions
UserManagementPermissions:
is_bundle: false
type: xml
dir: '%kernel.project_dir%/config/doctrine/Permissions/User'
prefix: 'App\Entity\Permissions\User'
alias: UserManagementPermissions
UserGroupManagementPermissions:
is_bundle: false
type: xml
dir: '%kernel.project_dir%/config/doctrine/Permissions/UserGroup'
prefix: 'App\Entity\Permissions\UserGroup'
alias: UserGroupManagementPermissions
ModManagementPermissions:
is_bundle: false
type: xml
dir: '%kernel.project_dir%/config/doctrine/Permissions/Mod'
prefix: 'App\Entity\Permissions\Mod'
alias: ModManagementPermissions
ModGroupManagementPermissions:
is_bundle: false
type: xml
dir: '%kernel.project_dir%/config/doctrine/Permissions/ModGroup'
prefix: 'App\Entity\Permissions\ModGroup'
alias: ModGroupManagementPermissions
DlcManagementPermissions:
is_bundle: false
type: xml
dir: '%kernel.project_dir%/config/doctrine/Permissions/Dlc'
prefix: 'App\Entity\Permissions\Dlc'
alias: DlcManagementPermissions
ModListManagementPermissions:
is_bundle: false
type: xml
dir: '%kernel.project_dir%/config/doctrine/Permissions/ModList'
prefix: 'App\Entity\Permissions\ModList'
alias: ModListManagementPermissions

when@test:
doctrine:
Expand Down
5 changes: 2 additions & 3 deletions src/Command/PermissionsMakeAdminCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,8 @@ protected function execute(InputInterface $input, OutputInterface $output): int
if (false !== $fullPermissions) {
$permissions->grantAll();
} else {
$userPermissions = $permissions->getUserManagementPermissions();
$userPermissions->setList(true);
$userPermissions->setUpdate(true);
$permissions->userList = true;
$permissions->userUpdate = true;
}

$this->entityManager->flush();
Expand Down
18 changes: 0 additions & 18 deletions src/Entity/Permissions/AbstractManagementPermissions.php

This file was deleted.

162 changes: 75 additions & 87 deletions src/Entity/Permissions/AbstractPermissions.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,97 +5,85 @@
namespace App\Entity\Permissions;

use App\Entity\AbstractBlamableEntity;
use App\Entity\Permissions\Dlc\DlcManagementPermissions;
use App\Entity\Permissions\Mod\ModManagementPermissions;
use App\Entity\Permissions\ModGroup\ModGroupManagementPermissions;
use App\Entity\Permissions\ModList\ModListManagementPermissions;
use App\Entity\Permissions\User\UserManagementPermissions;
use App\Entity\Permissions\UserGroup\UserGroupManagementPermissions;
use Ramsey\Uuid\UuidInterface;

abstract class AbstractPermissions extends AbstractBlamableEntity implements PermissionsInterface
abstract class AbstractPermissions extends AbstractBlamableEntity
{
protected UserManagementPermissions $userManagementPermissions;
protected UserGroupManagementPermissions $userGroupManagementPermissions;
protected ModManagementPermissions $modManagementPermissions;
protected ModGroupManagementPermissions $modGroupManagementPermissions;
protected DlcManagementPermissions $dlcManagementPermissions;
protected ModListManagementPermissions $modListManagementPermissions;

public function __construct(UuidInterface $id)
{
parent::__construct($id);

$this->userManagementPermissions = new UserManagementPermissions();
$this->userGroupManagementPermissions = new UserGroupManagementPermissions();
$this->modManagementPermissions = new ModManagementPermissions();
$this->modGroupManagementPermissions = new ModGroupManagementPermissions();
$this->dlcManagementPermissions = new DlcManagementPermissions();
$this->modListManagementPermissions = new ModListManagementPermissions();
}

public function getUserManagementPermissions(): UserManagementPermissions
{
return $this->userManagementPermissions;
}

public function getUserGroupManagementPermissions(): UserGroupManagementPermissions
{
return $this->userGroupManagementPermissions;
}

public function getModManagementPermissions(): ModManagementPermissions
{
return $this->modManagementPermissions;
}

public function getModGroupManagementPermissions(): ModGroupManagementPermissions
{
return $this->modGroupManagementPermissions;
}

public function getDlcManagementPermissions(): DlcManagementPermissions
{
return $this->dlcManagementPermissions;
}

public function getModListManagementPermissions(): ModListManagementPermissions
{
return $this->modListManagementPermissions;
}
// User
public bool $userList = false;
public bool $userUpdate = false;
public bool $userDelete = false;

// User Group
public bool $userGroupList = false;
public bool $userGroupCreate = false;
public bool $userGroupUpdate = false;
public bool $userGroupDelete = false;

// Mod
public bool $modList = false;
public bool $modCreate = false;
public bool $modUpdate = false;
public bool $modDelete = false;
public bool $modChangeStatus = false;

// Mod Group
public bool $modGroupList = false;
public bool $modGroupCreate = false;
public bool $modGroupUpdate = false;
public bool $modGroupDelete = false;

// Dlc
public bool $dlcList = false;
public bool $dlcCreate = false;
public bool $dlcUpdate = false;
public bool $dlcDelete = false;

// Mod List
public bool $modListList = false;
public bool $modListCreate = false;
public bool $modListUpdate = false;
public bool $modListDelete = false;
public bool $modListCopy = false;
public bool $modListApprove = false;

public function grantAll(): void
{
$this->getUserManagementPermissions()->setList(true);
$this->getUserManagementPermissions()->setUpdate(true);
$this->getUserManagementPermissions()->setDelete(true);

$this->getUserGroupManagementPermissions()->setList(true);
$this->getUserGroupManagementPermissions()->setCreate(true);
$this->getUserGroupManagementPermissions()->setUpdate(true);
$this->getUserGroupManagementPermissions()->setDelete(true);

$this->getModManagementPermissions()->setList(true);
$this->getModManagementPermissions()->setCreate(true);
$this->getModManagementPermissions()->setUpdate(true);
$this->getModManagementPermissions()->setDelete(true);
$this->getModManagementPermissions()->setChangeStatus(true);

$this->getModGroupManagementPermissions()->setList(true);
$this->getModGroupManagementPermissions()->setCreate(true);
$this->getModGroupManagementPermissions()->setUpdate(true);
$this->getModGroupManagementPermissions()->setDelete(true);

$this->getDlcManagementPermissions()->setList(true);
$this->getDlcManagementPermissions()->setCreate(true);
$this->getDlcManagementPermissions()->setUpdate(true);
$this->getDlcManagementPermissions()->setDelete(true);

$this->getModListManagementPermissions()->setList(true);
$this->getModListManagementPermissions()->setCreate(true);
$this->getModListManagementPermissions()->setUpdate(true);
$this->getModListManagementPermissions()->setDelete(true);
$this->getModListManagementPermissions()->setCopy(true);
$this->getModListManagementPermissions()->setApprove(true);
// User
$this->userList = true;
$this->userUpdate = true;
$this->userDelete = true;

// User Group
$this->userGroupList = true;
$this->userGroupCreate = true;
$this->userGroupUpdate = true;
$this->userGroupDelete = true;

// Mod
$this->modList = true;
$this->modCreate = true;
$this->modUpdate = true;
$this->modDelete = true;
$this->modChangeStatus = true;

// Mod Group
$this->modGroupList = true;
$this->modGroupCreate = true;
$this->modGroupUpdate = true;
$this->modGroupDelete = true;

// Dlc
$this->dlcList = true;
$this->dlcCreate = true;
$this->dlcUpdate = true;
$this->dlcDelete = true;

// Mod List
$this->modListList = true;
$this->modListCreate = true;
$this->modListUpdate = true;
$this->modListDelete = true;
$this->modListCopy = true;
$this->modListApprove = true;
}
}
Loading

0 comments on commit 92ef575

Please sign in to comment.