/**
  * This method returns an array indexed by record id, containing authorized actions
  * for given module and user.
  * 
  * When using this method, make sure you specify the $args['model'] && $args['module'] !
  * 
  * @param unknown_type $args
  * @param DmUser $user
  */
 public function getRecordsPermissionsByRecord($args, DmUser $user, $limit = 0)
 {
     $cacheKey = sprintf('recordsPermissionsByRecord_%s_%s', serialize($args), $user->get($user->getTable()->getIdentifier()));
     if (!isset($args['model'])) {
         throw new LogicException('You must specify the $args[\'model\'] key !');
     }
     if (!isset($args['module'])) {
         throw new LogicException('You must specify the $args[\'module\'] key !');
     }
     $records = array();
     $permissions = $this->getRecordsPermissionsQuery($args, $user)->limit($limit)->execute(array(), Doctrine::HYDRATE_ARRAY);
     if (is_array($permissions) && !empty($permissions)) {
         foreach ($permissions as $permission) {
             if (!isset($records[$permission['secure_record']])) {
                 $records[$permission['secure_record']] = array();
             }
             $records[$permission['secure_record']][] = $permission['secure_action'];
         }
     }
     return $records;
 }