folder fixes

Signed-off-by: Janos SUTO <sj@acts.hu>
This commit is contained in:
Janos SUTO
2020-12-21 21:52:16 +01:00
parent 1288c9fed3
commit fbbdce7f99
6 changed files with 22 additions and 16 deletions

View File

@ -57,17 +57,20 @@ class ModelFolderFolder extends Model {
public function get_folders_for_user() {
$session = Registry::get('session');
$folders = $session->get("folders");
$q = str_repeat("?,", count($session->get("folders")));
$q = str_repeat("?,", count($folders));
$q = preg_replace("/\,$/", "", $q);
if(isAuditorUser() == 1) {
$query = $this->db->query("SELECT `id`, `name` FROM `" . TABLE_FOLDER);
} else {
$query = $this->db->query("SELECT `id`, `name` FROM `" . TABLE_FOLDER . "` WHERE id IN ($q)", $session->get("folders"));
}
$query = $this->db->query("SELECT `id`, `name` FROM `" . TABLE_FOLDER . "` WHERE id IN ($q)", $folders);
if(isset($query->rows)) { return $query->rows; }
if(isset($query->rows)) {
$arr = $query->rows;
if(in_array(0, $folders, TRUE)) {
array_unshift($arr, array('id' => 0, 'name' => '---'));
}
return $arr;
}
return array();
}
@ -95,11 +98,12 @@ class ModelFolderFolder extends Model {
public function get_folder_id_array_for_user($uid = 0, $is_admin = 0) {
$arr = array();
$add_folder0 = ($is_admin == 0);
if($is_admin == 2) {
$query = $this->db->query("SELECT id FROM `" . TABLE_FOLDER_USER . "` WHERE uid=?", array($uid));
if($is_admin == 2 && (!isset($query->rows) || count($query->rows) == 0)) {
$query = $this->db->query("SELECT id FROM `" . TABLE_FOLDER);
} else {
$query = $this->db->query("SELECT id FROM `" . TABLE_FOLDER_USER . "` WHERE uid=?", array($uid));
$add_folder0 = 1;
}
if(isset($query->rows)) {
@ -109,6 +113,10 @@ class ModelFolderFolder extends Model {
}
}
if($add_folder0 == 1) {
array_unshift($arr, 0);
}
return $arr;
}

View File

@ -79,8 +79,6 @@ class ModelSearchSearch extends Model {
else { return ""; }
}
if(ENABLE_FOLDER_RESTRICTIONS == 1) { return ""; }
$all_your_addresses = $this->get_all_your_address("emails");
$all_your_wildcard_domains = $this->get_all_your_address("wildcard_domains");
@ -219,7 +217,7 @@ class ModelSearchSearch extends Model {
list ($total_found, $num_rows, $id_list) = $this->get_sphinx_id_list($data['note'], SPHINX_NOTE_INDEX, 'note', $page);
$query = $this->sphx->query("SELECT id FROM " . SPHINX_MAIN_INDEX . " WHERE $folders id IN ($id_list) $sortorder LIMIT 0,$pagelen OPTION max_matches=" . MAX_SEARCH_HITS);
}
else if(ENABLE_FOLDER_RESTRICTIONS == 1 && isset($data['extra_folders']) && strlen($data['extra_folders']) > 0) {
else if(ENABLE_FOLDER_RESTRICTIONS == 1 && isset($data['extra_folders'])) {
$query = $this->sphx->query("SELECT id FROM " . SPHINX_MAIN_INDEX . " WHERE $a $id $date $attachment $direction $size folder IN (" . preg_replace("/ /", ",", $data['extra_folders']) . ") AND MATCH('$match') $sortorder LIMIT $offset,$pagelen OPTION max_matches=" . MAX_SEARCH_HITS);
$total_found = $query->total_found;
$num_rows = $query->num_rows;