Skip to content

Commit

Permalink
clear an improve
Browse files Browse the repository at this point in the history
  • Loading branch information
vasiliishvakin committed Jun 12, 2017
1 parent a56aea6 commit cac1a55
Show file tree
Hide file tree
Showing 16 changed files with 108 additions and 32 deletions.
14 changes: 14 additions & 0 deletions src/AccessCheckIncludeInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?php

namespace Akademiano\Acl;


use Akademiano\Entity\GroupInterface;
use Akademiano\Entity\UserInterface;

interface AccessCheckIncludeInterface
{
public function setAclManager(AccessCheckInterface $aclManager);

public function accessCheck($resource = null, GroupInterface $group = null, UserInterface $user = null, UserInterface $owner = null);
}
33 changes: 33 additions & 0 deletions src/AccessCheckIncludeTrait.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?php

namespace Akademiano\Acl;

use Akademiano\Entity\GroupInterface;
use Akademiano\Entity\UserInterface;

trait AccessCheckIncludeTrait
{
/** @var AccessCheckInterface */
protected $aclManager;

/**
* @return AccessCheckInterface
*/
public function getAclManager()
{
return $this->aclManager;
}

/**
* @param AccessCheckInterface $aclManager
*/
public function setAclManager(AccessCheckInterface $aclManager)
{
$this->aclManager = $aclManager;
}

public function accessCheck($resource = null, GroupInterface $group = null, UserInterface $user = null, UserInterface $owner = null)
{
return $this->getAclManager()->accessCheck($resource, $group, $user, $owner);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Akademiano\Acl\Model;
namespace Akademiano\Acl;


use Akademiano\Entity\GroupInterface;
Expand Down
38 changes: 33 additions & 5 deletions src/Model/AclManager.php → src/AclManager.php
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
<?php

namespace Akademiano\Acl\Model;
namespace Akademiano\Acl;

use Akademiano\Acl\Model\Adapter\AdapterInterface;
use Akademiano\Acl\Model\Adapter\DenyAdapter;
use Akademiano\Acl\Adapter\AdapterInterface;
use Akademiano\Acl\Adapter\DenyAdapter;
use Akademiano\HttpWarp\Request;
use Akademiano\User\AuthInterface;
use Akademiano\Entity\UserInterface;
use Akademiano\Entity\GroupInterface;
Expand All @@ -17,6 +18,9 @@ class AclManager implements AccessCheckInterface
/** @var AdapterInterface */
protected $aclAdapter;

/** @var Request */
protected $request;

/**
* @param AuthInterface $custodian
*/
Expand Down Expand Up @@ -52,9 +56,33 @@ public function setAclAdapter($aclAdapter)
$this->aclAdapter = $aclAdapter;
}

public function accessCheck($resource, GroupInterface $group, UserInterface $user = null, UserInterface $owner = null)
/**
* @return Request
*/
public function getRequest()
{
return $this->request;
}

/**
* @param Request $request
*/
public function setRequest($request)
{
$resource = (string)$resource;
$this->request = $request;
}

public function getResource()
{
$resource = (string)$this->getRequest()->getUrl()->getPath();
return $resource;
}

public function accessCheck($resource = null, GroupInterface $group, UserInterface $user = null, UserInterface $owner = null)
{
if (null === $resource) {
$resource = $this->getResource();
}
if (is_null($user)) {
$user = $this->getCustodian()->getCurrentUser();
}
Expand Down
11 changes: 11 additions & 0 deletions src/Adapter/AdapterInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php

namespace Akademiano\Acl\Adapter;


use Akademiano\Acl\AccessCheckInterface;

interface AdapterInterface extends AccessCheckInterface
{

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Akademiano\Acl\Model\Adapter;
namespace Akademiano\Acl\Adapter;


use Akademiano\Entity\GroupInterface;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Akademiano\Acl\Model\Adapter;
namespace Akademiano\Acl\Adapter;


use Akademiano\Entity\GroupInterface;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Akademiano\Acl\Model\Adapter;
namespace Akademiano\Acl\Adapter;


interface FileBasedAdapterInterface
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Akademiano\Acl\Model\Adapter;
namespace Akademiano\Acl\Adapter;


use Akademiano\User\GuestGroupInterface;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?php

namespace Akademiano\Acl\Model\Adapter;
namespace Akademiano\Acl\Adapter;


use Akademiano\Acl\Model\XAclConf\File;
use Akademiano\Acl\XAclConf\File;
use Akademiano\Utils\ArrayTools;
use Akademiano\Entity\GroupInterface;
use Akademiano\Entity\UserInterface;
Expand Down
11 changes: 0 additions & 11 deletions src/Model/Adapter/AdapterInterface.php

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
namespace Akademiano\Acl;


interface RestrictedInterface
interface RestrictedAccessInterface
{
public function accessCheck();
}
2 changes: 1 addition & 1 deletion src/Model/XAclConf/File.php → src/XAclConf/File.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Akademiano\Acl\Model\XAclConf;
namespace Akademiano\Acl\XAclConf;


use Akademiano\Utils\Object\Prototype\ArrayableInterface;
Expand Down
2 changes: 1 addition & 1 deletion src/Model/XAclConf/Item.php → src/XAclConf/Item.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?php


namespace Akademiano\Acl\Model\XAclConf;
namespace Akademiano\Acl\XAclConf;


use Akademiano\Utils\Object\Prototype\ArrayableInterface;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?php


namespace Akademiano\Acl\Model\XAclConf;
namespace Akademiano\Acl\XAclConf;


use Akademiano\Utils\Object\Prototype\ArrayableInterface;
Expand Down
11 changes: 6 additions & 5 deletions src/config/resources.php
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
<?php

use Akademiano\Acl\Model\Adapter\FileBasedAdapterInterface;
use Akademiano\Acl\Adapter\FileBasedAdapterInterface;

return [
'aclManager' => function (\Pimple\Container $c) {
$aclManager = new \Akademiano\Acl\Model\AclManager();
$aclManager = new \Akademiano\Acl\AclManager();
$aclManager->setCustodian($c['custodian']);
$aclManager->setRequest($c["request"]);
/** @var \Akademiano\Config\Config $config */
$config = $c["config"];
$adapterName = $config->get(["Acl", "adapter"], "Akademiano\\Acl\\Model\\Adapter\\AllowAdapter");
/** @var \Akademiano\Acl\Model\Adapter\AdapterInterface $adapter */
$adapterName = $config->get(["Acl", "adapter"], "Akademiano\\Acl\\Adapter\\AllowAdapter");
/** @var \Akademiano\Acl\Adapter\AdapterInterface $adapter */
$adapter = new $adapterName;
if ($adapter instanceof \Akademiano\Config\ConfigurableInterface) {
$adapter->setConfig($config);
}

if ($adapter instanceof \Akademiano\Acl\Model\Adapter\FileBasedAdapterInterface) {
if ($adapter instanceof \Akademiano\Acl\Adapter\FileBasedAdapterInterface) {
/** @var \Akademiano\Config\ConfigLoader $configLoader */
$configLoader = $c["configLoader"];
$files = $configLoader->getFiles(FileBasedAdapterInterface::CONFIG_NAME, FileBasedAdapterInterface::FILE_EXT);
Expand Down

0 comments on commit cac1a55

Please sign in to comment.