annotate core/modules/hal/src/LinkManager/LinkManagerBase.php @ 13:5fb285c0d0e3

Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've been lucky to get away with this so far, as we don't support self-registration which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5 was vulnerable to.
author Chris Cannam
date Mon, 23 Apr 2018 09:33:26 +0100
parents 4c8ae668cc8c
children 1fec387a4317
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\hal\LinkManager;
Chris@0 4
Chris@0 5 /**
Chris@0 6 * Defines an abstract base-class for HAL link manager objects.
Chris@0 7 */
Chris@0 8 abstract class LinkManagerBase {
Chris@0 9
Chris@0 10 /**
Chris@0 11 * Link domain used for type links URIs.
Chris@0 12 *
Chris@0 13 * @var string
Chris@0 14 */
Chris@0 15 protected $linkDomain;
Chris@0 16
Chris@0 17 /**
Chris@0 18 * Config factory service.
Chris@0 19 *
Chris@0 20 * @var \Drupal\Core\Config\ConfigFactoryInterface
Chris@0 21 */
Chris@0 22 protected $configFactory;
Chris@0 23
Chris@0 24 /**
Chris@0 25 * The request stack.
Chris@0 26 *
Chris@0 27 * @var \Symfony\Component\HttpFoundation\RequestStack
Chris@0 28 */
Chris@0 29 protected $requestStack;
Chris@0 30
Chris@0 31 /**
Chris@0 32 * {@inheritdoc}
Chris@0 33 */
Chris@0 34 public function setLinkDomain($domain) {
Chris@0 35 $this->linkDomain = rtrim($domain, '/');
Chris@0 36 return $this;
Chris@0 37 }
Chris@0 38
Chris@0 39 /**
Chris@0 40 * Gets the link domain.
Chris@0 41 *
Chris@0 42 * @return string
Chris@0 43 * The link domain.
Chris@0 44 */
Chris@0 45 protected function getLinkDomain() {
Chris@0 46 if (empty($this->linkDomain)) {
Chris@0 47 if ($domain = $this->configFactory->get('hal.settings')->get('link_domain')) {
Chris@0 48 $this->linkDomain = rtrim($domain, '/');
Chris@0 49 }
Chris@0 50 else {
Chris@0 51 $request = $this->requestStack->getCurrentRequest();
Chris@0 52 $this->linkDomain = $request->getSchemeAndHttpHost() . $request->getBasePath();
Chris@0 53 }
Chris@0 54 }
Chris@0 55 return $this->linkDomain;
Chris@0 56 }
Chris@0 57
Chris@0 58 }