FEATURE #2048: prepare routes for ACL, add some more permissions

This commit is contained in:
Michal Kváček
2017-08-11 02:07:31 +02:00
parent cccdbda543
commit 335ec4a167
41 changed files with 836 additions and 489 deletions
@@ -0,0 +1,66 @@
<?php
use App\Models\Permissions\Permission;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddDefaultPermissions extends Migration
{
/**
* Run the migrations.
* @return void
*/
public function up()
{
Schema::table('permissions', function (Blueprint $table) {
$table->boolean('default')
->default(false);
});
Permission::getQuery()
->delete();
$permissions = [
'contents' => ['create', 'update', 'update-all', 'delete', 'set-homepage', 'publish', 'draft', 'protect', 'view-history'],
'users' => ['create', 'update', 'delete', 'set-permissions', 'change-status', 'change-role'],
'files' => ['upload', 'update', 'delete', 'move-to-directories'],
'directories' => ['create', 'edit', 'delete'],
'widgetareas' => ['create', 'edit', 'delete'],
'widgets' => ['create', 'edit', 'delete', 'assign', 'unassign'],
'templates' => ['copy', 'edit'],
'actions' => [],
'settings' => []
];
foreach ($permissions as $entity => $abilities) {
$parent = Permission::create([
'name' => 'admin/permissions.' . $entity . '.management',
'string_id' => $entity . '-management',
'group' => $entity,
'default' => true,
]);
foreach ($abilities as $ability) {
Permission::create([
'name' => 'admin/permissions.' . $entity . '.' . $ability,
'string_id' => $ability . '-' . $entity,
'group' => $entity,
'parent_id' => $parent->id,
'default' => true,
]);
}
}
}
/**
* Reverse the migrations.
* @return void
*/
public function down()
{
Schema::table('permissions', function (Blueprint $table) {
$table->dropColumn('default');
});
}
}