forked from GNUsocial/gnu-social
[COMPONENTS][Collection] Added PrependActorsCollection event [COMPONENTS][Group] Added getGroupCreateForm, used in PrependActorsCollection event to build create a new Group form view
[COMPONENTS][LeftPanel] Removed onEndShowStyles event since the corresponding CSS needed is now consolidated into the default_theme itself [COMPONENTS][RightPanel] Deleted components/RightPanel/RightPanel.php, since its only method (onEndShowStyles) wasn't needed anymore
This commit is contained in:
@@ -48,6 +48,7 @@ use Component\Group\Entity\LocalGroup;
|
||||
use Component\Subscription\Entity\ActorSubscription;
|
||||
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
|
||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
||||
use Symfony\Component\Form\FormInterface;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
class Group extends FeedController
|
||||
@@ -130,6 +131,53 @@ class Group extends FeedController
|
||||
throw new RedirectException('security_login');
|
||||
}
|
||||
|
||||
$create_form = self::getGroupCreateForm($request, $actor);
|
||||
|
||||
return [
|
||||
'_template' => 'group/create.html.twig',
|
||||
'create_form' => $create_form->createView(),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Settings page for the group with the provided nickname, checks if the current actor can administrate given group
|
||||
*
|
||||
* @throws ClientException
|
||||
* @throws NicknameEmptyException
|
||||
* @throws NicknameInvalidException
|
||||
* @throws NicknameNotAllowedException
|
||||
* @throws NicknameTakenException
|
||||
* @throws NicknameTooLongException
|
||||
* @throws NoLoggedInUser
|
||||
* @throws ServerException
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function groupSettings(Request $request, string $nickname)
|
||||
{
|
||||
$local_group = LocalGroup::getByNickname($nickname);
|
||||
$group_actor = $local_group->getActor();
|
||||
$actor = Common::actor();
|
||||
if (!\is_null($group_actor) && $actor->canAdmin($group_actor)) {
|
||||
return [
|
||||
'_template' => 'group/settings.html.twig',
|
||||
'group' => $group_actor,
|
||||
'personal_info_form' => ActorForms::personalInfo($request, $actor, $local_group)->createView(),
|
||||
'open_details_query' => $this->string('open'),
|
||||
];
|
||||
} else {
|
||||
throw new ClientException(_m('You do not have permission to edit settings for the group "{group}"', ['{group}' => $nickname]), code: 404);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new Group FormInterface getter
|
||||
*
|
||||
* @throws RedirectException
|
||||
* @throws ServerException
|
||||
*/
|
||||
public static function getGroupCreateForm(Request $request, E\Actor $actor): FormInterface
|
||||
{
|
||||
$create_form = Form::create([
|
||||
['group_nickname', TextType::class, ['label' => _m('Group nickname')]],
|
||||
['group_create', SubmitType::class, ['label' => _m('Create this group!')]],
|
||||
@@ -172,41 +220,6 @@ class Group extends FeedController
|
||||
|
||||
throw new RedirectException();
|
||||
}
|
||||
|
||||
return [
|
||||
'_template' => 'group/create.html.twig',
|
||||
'create_form' => $create_form->createView(),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Settings page for the group with the provided nickname, checks if the current actor can administrate given group
|
||||
*
|
||||
* @throws ClientException
|
||||
* @throws NicknameEmptyException
|
||||
* @throws NicknameInvalidException
|
||||
* @throws NicknameNotAllowedException
|
||||
* @throws NicknameTakenException
|
||||
* @throws NicknameTooLongException
|
||||
* @throws NoLoggedInUser
|
||||
* @throws ServerException
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function groupSettings(Request $request, string $nickname)
|
||||
{
|
||||
$local_group = LocalGroup::getByNickname($nickname);
|
||||
$group_actor = $local_group->getActor();
|
||||
$actor = Common::actor();
|
||||
if (!\is_null($group_actor) && $actor->canAdmin($group_actor)) {
|
||||
return [
|
||||
'_template' => 'group/settings.html.twig',
|
||||
'group' => $group_actor,
|
||||
'personal_info_form' => ActorForms::personalInfo($request, $actor, $local_group)->createView(),
|
||||
'open_details_query' => $this->string('open'),
|
||||
];
|
||||
} else {
|
||||
throw new ClientException(_m('You do not have permission to edit settings for the group "{group}"', ['{group}' => $nickname]), code: 404);
|
||||
}
|
||||
return $create_form;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user