#4, 112: Started working on an admin screen and database structure to be able to set default album permissions for top-level albums to inherit from (and a base for new albums created without inheriting.)

This commit is contained in:
2018-09-23 10:28:54 +01:00
parent 84f8ad75e9
commit da0667711a
10 changed files with 285 additions and 0 deletions
+9
View File
@@ -0,0 +1,9 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class AlbumDefaultGroupPermission extends Model
{
}
+9
View File
@@ -0,0 +1,9 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class AlbumDefaultUserPermission extends Model
{
}
@@ -3,6 +3,8 @@
namespace App\Http\Controllers\Admin;
use App\Album;
use App\AlbumDefaultGroupPermission;
use App\AlbumDefaultUserPermission;
use App\AlbumRedirect;
use App\Facade\Theme;
use App\Facade\UserConfig;
@@ -83,6 +85,41 @@ class AlbumController extends Controller
]);
}
public function defaultPermissions()
{
$this->authorizeAccessToAdminPanel('admin:manage-albums');
$addNewGroups = [];
$existingGroups = [];
foreach (Group::orderBy('name')->get() as $group)
{
if (AlbumDefaultGroupPermission::where('group_id', $group->id)->count() == 0)
{
$addNewGroups[] = $group;
}
else
{
$existingGroups[] = $group;
}
}
$existingUsers = [];
foreach (User::orderBy('name')->get() as $user)
{
if (AlbumDefaultUserPermission::where('user_id', $user->id)->count() > 0)
{
$existingUsers[] = $user;
}
}
return Theme::render('admin.album_default_permissions', [
'add_new_groups' => $addNewGroups,
'all_permissions' => Permission::where('section', 'album')->get(),
'existing_groups' => $existingGroups,
'existing_users' => $existingUsers
]);
}
public function delete($id)
{
$this->authorizeAccessToAdminPanel('admin:manage-albums');