Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions Init.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
use FacturaScripts\Core\Base\DataBase;
use FacturaScripts\Core\Template\InitClass;
use FacturaScripts\Core\Tools;
use FacturaScripts\Core\Where;
use FacturaScripts\Core\Model\Role;
use FacturaScripts\Core\Model\RoleAccess;
use FacturaScripts\Dinamic\Model\BalanceAccount;
use FacturaScripts\Dinamic\Model\BalanceCode;
use FacturaScripts\Dinamic\Model\Empresa;
Expand All @@ -43,6 +46,8 @@ public function uninstall(): void
{
}

const ROLE_NAME = 'Informes';

public function update(): void
{
// inicializamos empresa para que aplique los cambios en la tabla
Expand All @@ -51,6 +56,64 @@ public function update(): void
// migramos los datos antiguos
$this->migrateOldBalances();
$this->migrateOldReports();

// crea el role y permisos del plugin
$this->createRoleForPlugin();
}

private function createRoleForPlugin(): void
{
// force table checks for Role and RoleAccess
new Role();
new RoleAccess();

$dataBase = new DataBase();
$dataBase->beginTransaction();

// creates the role if not exists
$role = new Role();
if (false === $role->load(self::ROLE_NAME)) {
$role->codrole = $role->descripcion = self::ROLE_NAME;
if (false === $role->save()) {
// rollback and exit on fail
$dataBase->rollback();
return;
}
}

// checks the role permissions
$nameControllers = [
'ReportTreasury','ReportTransport','ReportTaxes','ReportResult',
'ReportProducto','ReportClients','ReportBreakdown','ReportBooks',
'ListReportAccounting','ListReport',
'EditReportLedger','EditReportBoard','EditReportBalance','EditReportAmount','EditReport','EditBalanceCode'
];
foreach ($nameControllers as $nameController) {
$roleAccess = new RoleAccess();
$where = [
Where::eq('codrole', self::ROLE_NAME),
Where::eq('pagename', $nameController)
];
if ($roleAccess->loadWhere($where)) {
// permission exists? Then skip
continue;
}

// creates the permission if not exists
$roleAccess->allowdelete = true;
$roleAccess->allowupdate = true;
$roleAccess->codrole = self::ROLE_NAME;
$roleAccess->pagename = $nameController;
$roleAccess->onlyownerdata = false;
if (false === $roleAccess->save()) {
// rollback and exit on fail
$dataBase->rollback();
return;
}
}

// without problems = Commit
$dataBase->commit();
}

private function copyBalancePymes(): bool
Expand Down
Loading