Esempio n. 1
0
 /**
  * @param string $context
  * @param SecurityContextConfiguration $configuration
  * @return Security
  */
 public function create($context, SecurityContextConfiguration $configuration)
 {
     $persistences = $this->repositories->createPersistenceRepository($context);
     $roles = $this->repositories->createRoleRepository($context);
     $users = $this->repositories->createUserRepository($context, $persistences, $roles);
     $sentinel = new Sentinel($persistences, $users, $roles, $this->repositories->createActivationRepository($context), $this->container->make(Dispatcher::class));
     foreach ($configuration->listCheckpoints() as $key => $checkpoint) {
         $sentinel->addCheckpoint($key, $this->makeCheckpoint($checkpoint, $configuration));
     }
     $sentinel->setReminderRepository($this->repositories->createReminderRepository($context, $users));
     $sentinel->setRequestCredentials(function () {
         $request = $this->container->make('request');
         $login = $request->getUser();
         $password = $request->getPassword();
         if ($login === null && $password === null) {
             return;
         }
         return compact('login', 'password');
     });
     $sentinel->creatingBasicResponse(function () {
         $headers = ['WWW-Authenticate' => 'Basic'];
         return new Response('Invalid credentials.', 401, $headers);
     });
     $security = new Security($sentinel, $this->repositories->createPermissionRepository($context));
     $this->bindUrlGenerator($security);
     $security->setLoginRoute($configuration->getLoginRoute());
     return $security;
 }
 /**
  * {@inheritdoc}
  */
 public function createPermissionRepository($context)
 {
     $enabled = $this->configuration($context)->isPermissionsEnabled();
     if (!$enabled) {
         return new InsecurePermissionRepository();
     }
     if ($permissionRepository = $this->configuration($context)->getPermissionRepository()) {
         return $this->container->make($permissionRepository);
     }
     return $this->defaults->createPermissionRepository($context);
 }
 /**
  * {@inheritdoc}
  */
 public function createPermissionRepository($context)
 {
     return $this->bindAndReturn(PermissionRepository::class, $this->repositories->createPermissionRepository($context));
 }