public function appList($request)
{
$app_list = array();
- foreach (IPF_Project::getInstance()->appList() as $app) {
+ foreach ($this->getProject()->appList() as $app) {
$components = array();
- foreach (IPF_Admin_App::applicationComponents($app) as $component) {
+ foreach ($this->applicationComponents($app) as $component) {
if ($component->isAccessible(array('view'), $request)) {
$component->request = $request;
$components[] = $component;
);
}
- private static $appComponents = array();
+ private $appComponents = array();
- public static function applicationComponents($app)
+ public function applicationComponents($app)
{
- if (!array_key_exists($app->slug(), self::$appComponents)) {
+ if (!array_key_exists($app->slug(), $this->appComponents)) {
$components = array();
if (is_file($app->getPath().'/admin.php')) {
}
}
- self::$appComponents[$app->slug()] = $components;
+ $this->appComponents[$app->slug()] = $components;
}
- return self::$appComponents[$app->slug()];
+ return $this->appComponents[$app->slug()];
}
- public static function getApplicationBySlug($slug)
+ public function getApplicationBySlug($slug)
{
- foreach (IPF_Project::getInstance()->appList() as $app)
- if ($app->slug() == $slug)
+ foreach ($this->getProject()->appList() as $app)
+ if ($app->slug() === $slug)
return $app;
return null;
}
- public static function getComponentBySlugs($appSlug, $componentSlug)
+ public function getComponentBySlugs($appSlug, $componentSlug)
{
- $app = self::getApplicationBySlug($appSlug);
+ $app = $this->getProject()->getApplicationBySlug($appSlug);
if (!$app)
return null;
- foreach (self::applicationComponents($app) as $component) {
+ foreach ($this->applicationComponents($app) as $component) {
if ($component->slug() == $componentSlug)
return $component;
}
public function commands()
{
return array(
- new IPF_Admin_Command_SyncPerms,
+ new IPF_Admin_Command_SyncPerms($this),
);
}
}
public $command = 'syncperms';
public $description = 'Create/Update permissions from admin components';
+ /** @var IPF_Admin_App */
+ private $admin_app;
+
+ public function __construct(IPF_Admin_App $admin_app)
+ {
+ $this->admin_app = $admin_app;
+ }
+
public function run($args=null)
{
print "Create/Update permissions from admin components\n";
print "COLLECTED PERMISSIONS:\n";
$permissions = array();
foreach (IPF_Project::getInstance()->appList() as $appname => $app) {
- foreach (IPF_Admin_App::applicationComponents($app) as $component) {
+ foreach ($this->admin_app->applicationComponents($app) as $component) {
foreach ($component->getPerms(null) as $permName) {
$name = $app->slug().'|'.$component->slug().'|'.$permName;
$permissions[$name] = array($app, $component, $permName);
function permissionChoices()
{
+ /** @var \IPF_Admin_App $admin_app */
+ $admin_app = \IPF_Project::getInstance()->getApplicationBySlug('admin');
+
$choices = array();
foreach (Permission::query()->fetchAll() as $p) {
list($appSlug, $componentSlug, $permission) = explode('|', $p->name);
- $component = \IPF_Admin_App::getComponentBySlugs($appSlug, $componentSlug);
+ $component = $admin_app->getComponentBySlugs($appSlug, $componentSlug);
if ($component)
$title = $component->app->getTitle().' | '.$component->verbose_name().' | '.ucfirst($permission);