class AnonymousPublishingController in Anonymous Publishing 8
Default controller for the anonymous_publishing_cl module.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\anonymous_publishing_cl\Controller\AnonymousPublishingController
Expanded class hierarchy of AnonymousPublishingController
File
- modules/
anonymous_publishing_cl/ src/ Controller/ AnonymousPublishingController.php, line 14
Namespace
Drupal\anonymous_publishing_cl\ControllerView source
class AnonymousPublishingController extends ControllerBase {
/**
* The messenger service.
*
* @var \Drupal\Core\Messenger\MessengerInterface
*/
protected $messenger;
/**
* UsersInvitedController constructor.
*
* @param \Drupal\Core\Messenger\MessengerInterface $messenger
* The messenger service.
*/
public function __construct(MessengerInterface $messenger) {
$this->messenger = $messenger;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('messenger'));
}
public function verifyAnonymousPost() {
$akey = \Drupal::request()->query
->get('akey', NULL);
if ($akey == NULL) {
$this->messenger
->addStatus(t('No activation key present.'));
return $this
->redirect('<front>');
}
// Check if the key exists.
$result = \Drupal::database()
->select('anonymous_publishing')
->fields('anonymous_publishing')
->condition('akey', $akey)
->execute()
->fetchAssoc();
$nid = $result['nid'];
$cid = $result['cid'];
$rkey = $result['akey'];
$wish = $result['alias'];
$vfied = $result['verified'];
$email = $result['email'];
$at = $akey[0];
if ($akey != $rkey) {
$this->messenger
->addError(t('Invalid activation key.'));
return $this
->redirect('<front>');
}
if ($vfied) {
$this->messenger
->addError(t('Stale activation key.'));
return $this
->redirect('<front>');
}
$result = \Drupal::database()
->select('anonymous_publishing_emails')
->fields('anonymous_publishing_emails')
->condition('email', $email)
->execute()
->fetchAssoc();
if (!empty($result)) {
if ($result['blocked']) {
// Hand-moderate if already blocked.
$at = 'V';
}
}
else {
$ip = \Drupal::request()
->getClientIp();
$now = date('Y-m-d');
$auid = \Drupal::database()
->insert('anonymous_publishing_emails')
->fields(array(
'email' => $email,
'ipaddress' => $ip,
'firstseen' => $now,
'lastseen' => $now,
))
->execute();
$aliasopt = \Drupal::config('anonymous_publishing_cl.settings')
->get('user_alias');
if ($aliasopt == 'alias') {
$alias = 'user' . $auid;
}
elseif (!empty($wish)) {
$alias = $wish;
}
else {
$alias = '';
}
\Drupal::database()
->update('anonymous_publishing_emails')
->fields([
'alias' => $alias,
])
->condition('auid', $auid, '=')
->execute();
}
\Drupal::database()
->update('anonymous_publishing')
->fields([
'verified' => 1,
])
->condition('akey', $akey, '=')
->execute();
$vfymsg = t('Thanks for verifying your email,');
if ('V' == $at) {
$this->messenger
->addMessage($vfymsg . ' ' . t('your content will be published when it has been approved by an administrator.'));
return $this
->redirect('<front>');
}
else {
// Activate (unless comment moderation).
if ($cid && \Drupal::currentUser()
->hasPermission('skip comment approval')) {
$comment = Comment::load($cid);
$comment
->setPublished(TRUE);
$comment
->save();
$this->messenger
->addMessage($vfymsg . ' ' . t('your comment has been published and will appear on the site soon.'));
$url = $comment
->permalink();
return $this
->redirect($url
->getRouteName(), $url
->getRouteParameters(), $url
->getOptions());
}
elseif ($cid) {
$this->messenger
->addMessage($vfymsg . ' ' . t('your comment will be published when it has been approved by an administrator.'));
return $this
->redirect('<front>');
}
else {
$node = Node::load($nid);
$node
->setPublished(TRUE);
$node
->save();
$this->messenger
->addMessage($vfymsg . ' ' . t('your content has been published and will appear on the site soon.'));
if ($node
->access('view')) {
return $this
->redirect($node
->toUrl()
->getRouteName(), array(
'node' => $nid,
));
}
}
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AnonymousPublishingController:: |
protected | property |
The messenger service. Overrides MessengerTrait:: |
|
AnonymousPublishingController:: |
public static | function |
Instantiates a new instance of this class. Overrides ControllerBase:: |
|
AnonymousPublishingController:: |
public | function | ||
AnonymousPublishingController:: |
public | function | UsersInvitedController constructor. | |
ControllerBase:: |
protected | property | The configuration factory. | |
ControllerBase:: |
protected | property | The current user service. | 1 |
ControllerBase:: |
protected | property | The entity form builder. | |
ControllerBase:: |
protected | property | The entity manager. | |
ControllerBase:: |
protected | property | The entity type manager. | |
ControllerBase:: |
protected | property | The form builder. | 2 |
ControllerBase:: |
protected | property | The key-value storage. | 1 |
ControllerBase:: |
protected | property | The language manager. | 1 |
ControllerBase:: |
protected | property | The module handler. | 2 |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity manager service. | |
ControllerBase:: |
protected | function | Retrieves the entity type manager. | |
ControllerBase:: |
protected | function | Returns the form builder service. | 2 |
ControllerBase:: |
protected | function | Returns a key/value storage collection. | 1 |
ControllerBase:: |
protected | function | Returns the language manager service. | 1 |
ControllerBase:: |
protected | function | Returns the module handler. | 2 |
ControllerBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
ControllerBase:: |
protected | function | Returns the state storage service. | |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |