You are here

public function DrupalGapController::drupalgapSystemConnect in DrupalGap 8.2

1 string reference to 'DrupalGapController::drupalgapSystemConnect'
drupalgap.routing.yml in ./drupalgap.routing.yml
drupalgap.routing.yml

File

src/Controller/DrupalGapController.php, line 174
Contains \Drupal\drupalgap\Controller\DrupalGapController.

Class

DrupalGapController
Returns responses for DrupalGap module routes.

Namespace

Drupal\drupalgap\Controller

Code

public function drupalgapSystemConnect() {
  $response = new Response();

  // @see https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Session!AccountProxyInterface.php/interface/AccountProxyInterface/8
  $user = \Drupal::currentUser();
  $_account = $user
    ->getAccount();
  $account = new \stdClass();
  $account->uid = $_account
    ->id();
  $account->name = $_account
    ->getUsername();
  $account->roles = $_account
    ->getRoles();
  foreach ($_account as $key => $value) {
    $account->{$key} = $value;
  }
  unset($account->pass);
  if (!$_account
    ->hasPermission('administer users')) {
    unset($account->init);
  }
  if (!$_account
    ->isAuthenticated()) {
    $account->roles = array(
      'anonymous user',
    );
  }
  $json = array(
    'user' => $account,
    'remote_addr' => $_SERVER['REMOTE_ADDR'],
  );
  $response
    ->setContent(json_encode($json));
  $response->headers
    ->set('Content-Type', 'application/json');
  return $response;
}