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()));
     }
 }