migration: Add shiftentry_edit_angeltype_supporter permission to angels
parent
99126cab0c
commit
5a912a0f7e
@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
namespace Engelsystem\Migrations;
|
||||
|
||||
use Engelsystem\Database\Migration\Migration;
|
||||
|
||||
class AddAngelSupporterPermissions extends Migration
|
||||
{
|
||||
/** @var string[] */
|
||||
protected $data = [
|
||||
'2-Engel',
|
||||
'shiftentry_edit_angeltype_supporter',
|
||||
];
|
||||
|
||||
/**
|
||||
* Run the migration
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
if (!$this->schema->hasTable('GroupPrivileges')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$db = $this->schema->getConnection();
|
||||
if (!empty($db->select($this->getQuery('SELECT *'), $this->data))) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Add permissions to angels to edit angels if they are angeltype supporters
|
||||
$db->insert(
|
||||
'
|
||||
INSERT IGNORE INTO GroupPrivileges (group_id, privilege_id)
|
||||
VALUES ((SELECT UID FROM `Groups` WHERE `name` = ?), (SELECT id FROM `Privileges` WHERE `name` = ?))
|
||||
',
|
||||
$this->data
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migration
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
if (!$this->schema->hasTable('GroupPrivileges')) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Remove permission from angels
|
||||
$this->schema->getConnection()->delete(
|
||||
$this->getQuery('DELETE'),
|
||||
$this->data
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $type
|
||||
* @return string
|
||||
*/
|
||||
protected function getQuery($type)
|
||||
{
|
||||
return sprintf('
|
||||
%s FROM GroupPrivileges
|
||||
WHERE group_id = (SELECT UID FROM `Groups` WHERE `name` = ?)
|
||||
AND privilege_id = (SELECT id FROM `Privileges` WHERE `name` = ?)
|
||||
', $type);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue