activitypub-1.0.x-dev/src/Form/ActivityPubUserForm.php

src/Form/ActivityPubUserForm.php
<?php

namespace Drupal\activitypub\Form;

use Drupal\activitypub\Services\ActivityPubFormAlterInterface;
use Drupal\Core\Access\AccessResult;
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\user\UserInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;

class ActivityPubUserForm extends FormBase {

  /**
   * The ActivityPub form alter service.
   *
   * @var \Drupal\activitypub\Services\ActivityPubFormAlterInterface
   */
  protected $activityPubFormAlter;

  /**
   * UserForm constructor
   *
   * @param \Drupal\activitypub\Services\ActivityPubFormAlterInterface $activitypub_form_alter
   */
  public function __construct(ActivityPubFormAlterInterface $activitypub_form_alter) {
    $this->activityPubFormAlter = $activitypub_form_alter;
  }

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container) {
    return new static(
      $container->get('activitypub.form_alter')
    );
  }

  /**
   * {@inheritdoc}
   */
  public function getFormId() {
    return 'activitypub_user_form';
  }

  /**
   * Check that the actor points to the user.
   *
   * @param \Drupal\user\UserInterface $user
   *
   * @return \Drupal\Core\Access\AccessResultInterface
   *   The access result.
   */
  public function currentUserCheck(UserInterface $user) {

    if ($user->id() == $this->currentUser()->id()) {
      return AccessResult::allowedIfHasPermission($user,'allow users to enable activitypub');
    }

    return AccessResult::forbidden();
  }

  /**
   * {@inheritdoc}
   */
  public function buildForm(array $form, FormStateInterface $form_state, UserInterface $user = NULL) {
    $this->activityPubFormAlter->addActivityPubSettingsFormElement($form, $form_state, $user, 'person');
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function submitForm(array &$form, FormStateInterface $form_state) {}

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc