From 9cb257e11d46ac3e48cc79a725c527ee129c2f85 Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Thu, 18 Jun 2015 12:38:24 +0930 Subject: [PATCH] Update core permissions stuff --- src/Core/CoreServiceProvider.php | 12 +------ src/Core/Models/Permission.php | 11 ------- src/Extend/Permission.php | 55 -------------------------------- 3 files changed, 1 insertion(+), 77 deletions(-) delete mode 100644 src/Extend/Permission.php diff --git a/src/Core/CoreServiceProvider.php b/src/Core/CoreServiceProvider.php index eb1d14a2e..8f71be596 100644 --- a/src/Core/CoreServiceProvider.php +++ b/src/Core/CoreServiceProvider.php @@ -182,16 +182,6 @@ class CoreServiceProvider extends ServiceProvider public function registerPermissions() { - $this->extend( - new Permission('forum.view'), - new Permission('forum.startDiscussion'), - new Permission('discussion.reply'), - new Permission('discussion.editPosts'), - new Permission('discussion.deletePosts'), - new Permission('discussion.rename'), - new Permission('discussion.delete') - ); - Forum::allow('*', function ($forum, $user, $action) { if ($user->hasPermission('forum.'.$action)) { return true; @@ -199,7 +189,7 @@ class CoreServiceProvider extends ServiceProvider }); Post::allow('*', function ($post, $user, $action) { - if ($user->hasPermission('post.'.$action)) { + if ($post->discussion->can($user, $action.'Posts')) { return true; } }); diff --git a/src/Core/Models/Permission.php b/src/Core/Models/Permission.php index 33c7c6d80..22a876e04 100644 --- a/src/Core/Models/Permission.php +++ b/src/Core/Models/Permission.php @@ -2,15 +2,4 @@ class Permission extends Model { - protected static $permissions = []; - - public static function getPermissions() - { - return static::$permissions; - } - - public static function addPermission($permission) - { - static::$permissions[] = $permission; - } } diff --git a/src/Extend/Permission.php b/src/Extend/Permission.php deleted file mode 100644 index 662c76c1b..000000000 --- a/src/Extend/Permission.php +++ /dev/null @@ -1,55 +0,0 @@ -permission = $permission; - } - - public function serialize($serialize = true) - { - $this->serialize = $serialize; - - return $this; - } - - public function grant($callback) - { - $this->grant[] = $callback; - - return $this; - } - - public function extend(Container $container) - { - PermissionModel::addPermission($this->permission); - - list($entity, $permission) = explode('.', $this->permission); - - if ($this->serialize) { - $extender = new SerializeAttributes( - 'Flarum\Api\Serializers\\'.ucfirst($entity).'Serializer', - function (&$attributes, $model, $serializer) use ($permission) { - $attributes['can'.ucfirst($permission)] = (bool) $model->can($serializer->actor->getUser(), $permission); - } - ); - - $extender->extend($container); - } - - foreach ($this->grant as $callback) { - $model = 'Flarum\Core\Models\\'.ucfirst($entity); - $model::grantPermission($permission, $callback); - } - } -}