mirror of
https://bitbucket.org/jsuto/piler.git
synced 2024-12-25 17:40:11 +01:00
folder fixes
Signed-off-by: Janos SUTO <sj@acts.hu>
This commit is contained in:
parent
1288c9fed3
commit
fbbdce7f99
@ -375,6 +375,8 @@ include("system/helper/detectmobilebrowser.php");
|
||||
// make sure auditors are restricted in a saas environment
|
||||
if($config['ENABLE_SAAS'] == 1) { $config['RESTRICTED_AUDITOR'] = 1; }
|
||||
if($session->get("username") == 'auditor@local' || isset($_SERVER['argv'][2]) ) { $config['RESTRICTED_AUDITOR'] = 0; }
|
||||
// disable folders for normal users with no folder restrictions set
|
||||
if($config['ENABLE_FOLDER_RESTRICTIONS'] == 1 && $session->get("admin_user") == 0 && (!$session->get("folders") || count($session->get("folders")) <= 1)) { $config['ENABLE_FOLDER_RESTRICTIONS'] = 0; }
|
||||
|
||||
|
||||
|
||||
|
@ -15,7 +15,6 @@ class ControllerSearchFolder extends Controller {
|
||||
$this->load->model('folder/folder');
|
||||
|
||||
$this->data['extra_folders'] = $this->model_folder_folder->get_folders_for_user();
|
||||
array_unshift($this->data['extra_folders'], array('id' => 0, 'name' => '---'));
|
||||
|
||||
$this->data['folders_by_hier'] = $this->model_folder_folder->get_all_folder_ids_hier($session->get("uid"));
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -55,7 +55,6 @@
|
||||
<div id="folderbox" class="input-prepend input-append">
|
||||
<span class="add-on"><i class="icon-folder-open-alt icon-large"></i> <?php print $text_folder; ?>:</span>
|
||||
<select name="folder_id" id="folder_id" class="span2">
|
||||
<option value="0" <?php if($folder_id == 0) { ?>selected="selected"<?php } ?>>---</option>
|
||||
<?php foreach ($folders as $folder) { ?>
|
||||
<option value="<?php print $folder['id']; ?>" <?php if($folder_id == $folder['id']) { ?>selected="selected"<?php } ?>><?php print $folder['name']; ?></option>
|
||||
<?php } ?>
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
<?php foreach ($extra_folders as $folder) { ?>
|
||||
<div>
|
||||
<label class="folderlabel"><input type="checkbox" id="extra_folder_<?php print $folder['id']; ?>" name="extra_folder_<?php print $folder['id']; ?>" style="margin:0;" class="foldercheckbox" /> <?php print $folder['name']; ?></label>
|
||||
<label class="folderlabel"><input type="checkbox" id="extra_folder_<?php print $folder['id']; ?>" name="extra_folder_<?php print $folder['id']; ?>" style="margin:0;" class="foldercheckbox" checked="checked" /> <?php print $folder['name']; ?></label>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user