mirror of
https://github.com/flarum/core.git
synced 2025-10-23 12:46:09 +02:00
Implement basic settings page
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
use Flarum\Api\Actions\SerializeResourceAction;
|
||||
use Flarum\Api\JsonApiRequest;
|
||||
use Flarum\Core\Groups\Group;
|
||||
use Tobscure\JsonApi\Document;
|
||||
|
||||
class ShowAction extends SerializeResourceAction
|
||||
@@ -14,7 +15,9 @@ class ShowAction extends SerializeResourceAction
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public $include = [];
|
||||
public $include = [
|
||||
'groups' => true
|
||||
];
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
@@ -51,6 +54,10 @@ class ShowAction extends SerializeResourceAction
|
||||
*/
|
||||
protected function data(JsonApiRequest $request, Document $document)
|
||||
{
|
||||
return app('flarum.forum');
|
||||
$forum = app('flarum.forum');
|
||||
|
||||
$forum->groups = Group::all();
|
||||
|
||||
return $forum;
|
||||
}
|
||||
}
|
||||
|
53
src/Api/Actions/Forum/UpdateAction.php
Normal file
53
src/Api/Actions/Forum/UpdateAction.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php namespace Flarum\Api\Actions\Forum;
|
||||
|
||||
use Flarum\Core\Exceptions\PermissionDeniedException;
|
||||
use Flarum\Core\Settings\SettingsRepository;
|
||||
use Flarum\Api\Actions\SerializeResourceAction;
|
||||
use Flarum\Api\JsonApiRequest;
|
||||
use Tobscure\JsonApi\Document;
|
||||
|
||||
class UpdateAction extends SerializeResourceAction
|
||||
{
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
public $serializer = 'Flarum\Api\Serializers\ForumSerializer';
|
||||
|
||||
/**
|
||||
* @var SettingsRepository
|
||||
*/
|
||||
protected $settings;
|
||||
|
||||
/**
|
||||
* @param SettingsRepository $settings
|
||||
*/
|
||||
public function __construct(SettingsRepository $settings)
|
||||
{
|
||||
$this->settings = $settings;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the forum, ready to be serialized and assigned to the JsonApi
|
||||
* response.
|
||||
*
|
||||
* @param JsonApiRequest $request
|
||||
* @param Document $document
|
||||
* @return \Flarum\Core\Forum
|
||||
*/
|
||||
protected function data(JsonApiRequest $request, Document $document)
|
||||
{
|
||||
if (! $request->actor->isAdmin()) {
|
||||
throw new PermissionDeniedException;
|
||||
}
|
||||
|
||||
$config = $request->get('data.attributes.config');
|
||||
|
||||
if (is_array($config)) {
|
||||
foreach ($config as $k => $v) {
|
||||
$this->settings->set($k, $v);
|
||||
}
|
||||
}
|
||||
|
||||
return app('flarum.forum');
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user