/** * Creates query for entities * * @param alias string Aliase for file table * @param permConf hash Permission configuration. @see RM_Permission_Mapper::addPermissionToQuery * Fields: 'access-id-field', 'owner-id-field', 'join-table' are filled automatically * @return void */ public function createFilesQuery($alias, array &$aliases, $permConf) { $binds = array(); $query = $this->_fileStorage->createQuery($alias); if ($permConf) { $permConf['join-table'] = $alias; if (!isset($permConf['self-alias'])) { $permConf['self-alias'] = 'file_perm'; } if (!isset($permConf['self-prefix'])) { $permConf['self-prefix'] = 'file_access_'; } if ($this->_usePermissions) { $binds = M('Permission')->addPermissionToQuery($query, $aliases, $permConf); } else { $perms = is_array($permConf['permissions']) ? $permConf['permissions'] : array('result' => $permConf['permissions']); foreach ($perms as $key => $value) { $aliases[$permConf['self-prefix'] . $key] = PERM_ALLOW; } } } return array($query, $binds); }