protected function writeFixture(dmModule $module, $securityDesc) { $this->clear(); if ($pluginName = $module->getPluginName()) { $root = dmContext::getInstance()->getConfiguration()->getPluginConfiguration($pluginName)->getRootDir(); } else { $root = sfConfig::get('sf_root_dir'); } $fixturesRootPath = dmOs::join($root, 'data', 'fixtures'); foreach (array('admin', 'front') as $app) { foreach (array('actions', 'components') as $actionKind) { if (isset($securityDesc[$app]) && isset($securityDesc[$app][$actionKind]) && is_array($securityDesc[$app][$actionKind])) { foreach ($securityDesc[$app][$actionKind] as $actionName => $actionDesc) { if (isset($actionDesc['credentials'])) { $credentials = (array) $module->getSecurityManager()->parseCredentials($actionDesc['credentials']); foreach ($credentials as $credential) { $this->addPermissionFor($credential, $module->getKey(), $actionName); } } } } } } $this->doWriteFixture(dmOs::join($fixturesRootPath, 'DmPermissions', $module->getKey() . '.yml')); }
/** * Sometimes dmModules don't have generate_dir set, so we must set it ourselves. * @todo moved to dmModule, more appropriate place * @param dmModule $module * @param unknown_type $configuration */ public function setGenerateDirOption(dmModule $module, $configuration) { if ($pluginName = $module->getPluginName()) { if ($module->isOverridden()) { return; } $module->setOption('generate_dir', dmOs::join($configuration->getPluginConfiguration($pluginName)->getRootDir(), 'modules', $module->getSfName())); } else { $module->setOption('generate_dir', dmOs::join(sfConfig::get('sf_apps_dir'), $this->getApplication() . '/modules', $module->getSfName())); } }