コード例 #1
0
 public function manage(DmRecordPermission $permission)
 {
     if (!$this->user->getUser()) {
         return;
     }
     $userId = $this->user->getUser()->get($this->user->getUser()->getTable()->getIdentifier());
     $query = dmDb::table('DmRecordPermissionAssociation')->createQuery('p')->select('p.id, p.dm_secure_module, p.dm_secure_action, p.dm_secure_model, g.id, u.id')->leftJoin('p.Groups g')->leftJoin('p.Users u')->addWhere('p.dm_secure_module = ?', $permission->get('secure_module'))->addWhere('p.dm_secure_action = ?', $permission->get('secure_action'))->addWhere('p.dm_secure_model = ?', $permission->get('secure_model'));
     $query = $this->context->getEventDispatcher()->filter(new sfEvent($permission, 'dm_record_permission_association_manager.filter_query'), $query)->getReturnValue();
     $associations = $query->execute();
     $this->associate($permission, $associations);
 }
コード例 #2
0
 protected function manageInsert(dmDoctrineRecord $record, $actionName, $actionConfig, $app)
 {
     $permission = new DmRecordPermission();
     $permission->set('secure_module', $record->getDmModule()->getSfName());
     $permission->set('secure_action', $actionName);
     $permission->set('secure_model', get_class($record));
     $permission->set('secure_record', $record->get($record->getTable()->getIdentifier()));
     $permission->set('description', sprintf('Secure access to action %s of module %s for record "%s" of class %s', $actionName, $record->getDmModule()->getKey(), $record->__toString(), get_class($record)));
     $permission->save();
 }