[Web] Start work on ACL; [Helper] Nextcloud helper script
parent
988978b351
commit
db5a3ae47f
|
@ -457,6 +457,23 @@ if (isset($_SESSION['mailcow_cc_role'])) {
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<?php
|
||||||
|
$mailbox_acl = get_acl($mailbox);
|
||||||
|
?>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label col-sm-2" for="sender_acl">ACL:</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<select multiple data-width="100%" style="width:100%" >
|
||||||
|
<?php
|
||||||
|
foreach ($mailbox_acl as $key => $val) {
|
||||||
|
?>
|
||||||
|
<option value="<?=$key;?>" <?=($val == 1) ? 'selected' : null;?>><?=$lang['edit'][$key];?></option>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-sm-2" for="password"><?=$lang['edit']['password'];?></label>
|
<label class="control-label col-sm-2" for="password"><?=$lang['edit']['password'];?></label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
|
|
|
@ -244,6 +244,23 @@ function set_acl() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function get_acl($username) {
|
||||||
|
global $pdo;
|
||||||
|
if ($_SESSION['mailcow_cc_role'] != "admin") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$username = strtolower(trim($username));
|
||||||
|
$stmt = $pdo->prepare("SELECT * FROM `user_acl` WHERE `username` = :username");
|
||||||
|
$stmt->execute(array(':username' => $username));
|
||||||
|
$acl = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||||
|
unset($acl['username']);
|
||||||
|
if (!empty($acl)) {
|
||||||
|
return $acl;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
function formatBytes($size, $precision = 2) {
|
function formatBytes($size, $precision = 2) {
|
||||||
if(!is_numeric($size)) {
|
if(!is_numeric($size)) {
|
||||||
return "0";
|
return "0";
|
||||||
|
|
|
@ -3,7 +3,7 @@ function init_db_schema() {
|
||||||
try {
|
try {
|
||||||
global $pdo;
|
global $pdo;
|
||||||
|
|
||||||
$db_version = "02102017_0748";
|
$db_version = "25102017_0748";
|
||||||
|
|
||||||
$stmt = $pdo->query("SHOW TABLES LIKE 'versions'");
|
$stmt = $pdo->query("SHOW TABLES LIKE 'versions'");
|
||||||
$num_results = count($stmt->fetchAll(PDO::FETCH_ASSOC));
|
$num_results = count($stmt->fetchAll(PDO::FETCH_ASSOC));
|
||||||
|
@ -165,7 +165,6 @@ function init_db_schema() {
|
||||||
"delimiter_action" => "TINYINT(1) NOT NULL DEFAULT '1'",
|
"delimiter_action" => "TINYINT(1) NOT NULL DEFAULT '1'",
|
||||||
"syncjobs" => "TINYINT(1) NOT NULL DEFAULT '1'",
|
"syncjobs" => "TINYINT(1) NOT NULL DEFAULT '1'",
|
||||||
"eas_reset" => "TINYINT(1) NOT NULL DEFAULT '1'",
|
"eas_reset" => "TINYINT(1) NOT NULL DEFAULT '1'",
|
||||||
"eas_autoconfig" => "TINYINT(1) NOT NULL DEFAULT '1'"
|
|
||||||
),
|
),
|
||||||
"keys" => array(
|
"keys" => array(
|
||||||
"fkey" => array(
|
"fkey" => array(
|
||||||
|
|
|
@ -141,9 +141,9 @@ $lang['user']['weeks'] = 'Weeks';
|
||||||
$lang['user']['spamfilter'] = 'Spam filter';
|
$lang['user']['spamfilter'] = 'Spam filter';
|
||||||
$lang['admin']['spamfilter'] = 'Spam filter';
|
$lang['admin']['spamfilter'] = 'Spam filter';
|
||||||
$lang['user']['spamfilter_wl'] = 'Whitelist';
|
$lang['user']['spamfilter_wl'] = 'Whitelist';
|
||||||
$lang['user']['spamfilter_wl_desc'] = 'Whitelisted email addresses to <b>never</b> classify as spam. Wildcards maybe used.';
|
$lang['user']['spamfilter_wl_desc'] = 'Whitelisted email addresses to <b>never</b> classify as spam. Wildcards may be used.';
|
||||||
$lang['user']['spamfilter_bl'] = 'Blacklist';
|
$lang['user']['spamfilter_bl'] = 'Blacklist';
|
||||||
$lang['user']['spamfilter_bl_desc'] = 'Blacklisted email addresses to <b>always</b> classify as spam and reject. Wildcards maybe used.';
|
$lang['user']['spamfilter_bl_desc'] = 'Blacklisted email addresses to <b>always</b> classify as spam and reject. Wildcards may be used.';
|
||||||
$lang['user']['spamfilter_behavior'] = 'Rating';
|
$lang['user']['spamfilter_behavior'] = 'Rating';
|
||||||
$lang['user']['spamfilter_table_rule'] = 'Rule';
|
$lang['user']['spamfilter_table_rule'] = 'Rule';
|
||||||
$lang['user']['spamfilter_table_action'] = 'Action';
|
$lang['user']['spamfilter_table_action'] = 'Action';
|
||||||
|
@ -537,3 +537,11 @@ $lang['admin']['remove_row'] = "Remove row";
|
||||||
$lang['admin']['add_row'] = "Add row";
|
$lang['admin']['add_row'] = "Add row";
|
||||||
$lang['admin']['reset_default'] = "Reset to default";
|
$lang['admin']['reset_default'] = "Reset to default";
|
||||||
$lang['admin']['merged_vars_hint'] = 'Greyed out rows were merged from <code>vars.inc.(local.)php</code> and cannot be modified.';
|
$lang['admin']['merged_vars_hint'] = 'Greyed out rows were merged from <code>vars.inc.(local.)php</code> and cannot be modified.';
|
||||||
|
|
||||||
|
$lang['edit']['tls_policy'] = "Change TLS policy";
|
||||||
|
$lang['edit']['spam_score'] = "Set a custom spam score";
|
||||||
|
$lang['edit']['spam_policy'] = "Add or remove items to white-/blacklist";
|
||||||
|
$lang['edit']['delimiter_action'] = "Change delimiter action";
|
||||||
|
$lang['edit']['syncjobs'] = "Add or change sync jobs";
|
||||||
|
$lang['edit']['eas_reset'] = "Reset EAS devices";
|
||||||
|
$lang['edit']['spam_alias'] = "Create or change time limited alias addresses";
|
||||||
|
|
|
@ -268,8 +268,8 @@ elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == '
|
||||||
<h4><?=$lang['user']['spamfilter_behavior'];?></h4>
|
<h4><?=$lang['user']['spamfilter_behavior'];?></h4>
|
||||||
<form class="form-horizontal" role="form" data-id="spam_score" method="post">
|
<form class="form-horizontal" role="form" data-id="spam_score" method="post">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="col-sm-12">
|
<div class="col-lg-6 col-sm-12">
|
||||||
<input name="spam_score" id="spam_score" type="text" style="width: 100% !important;"
|
<input name="spam_score" id="spam_score" type="text" style="width: 100%;"
|
||||||
data-provide="slider"
|
data-provide="slider"
|
||||||
data-slider-min="1"
|
data-slider-min="1"
|
||||||
data-slider-max="2000"
|
data-slider-max="2000"
|
||||||
|
@ -321,14 +321,13 @@ elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == '
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="policy_wl_mailbox" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
|
<a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="policy_wl_mailbox" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
|
||||||
<a class="btn btn-sm btn-danger" id="delete_selected" data-id="policy_wl_mailbox" data-api-url='delete/mailbox-policy' href="#"><?=$lang['mailbox']['remove'];?></a></li>
|
<a class="btn btn-sm btn-danger" id="delete_selected" data-id="policy_wl_mailbox" data-api-url='delete/mailbox-policy' href="#"><?=$lang['mailbox']['remove'];?></a></li>
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form class="form-inline" data-id="add_wl_policy_mailbox">
|
<form class="form-inline" data-id="add_wl_policy_mailbox">
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="text" class="form-control" name="object_from" id="object_from" placeholder="*@example.org" required>
|
<input type="text" class="form-control" name="object_from" id="object_from" placeholder="*@example.org" required>
|
||||||
<span class="input-group-btn">
|
<span class="input-group-btn">
|
||||||
<button class="btn btn-success" id="add_item" data-id="add_wl_policy_mailbox" data-api-url='add/mailbox-policy' data-api-attr='{"username":"<?= $username; ?>","object_list":"wl"}' href="#"><span class="glyphicon glyphicon-plus"></span> <?=$lang['user']['spamfilter_table_add'];?></button>
|
<button class="btn btn-default" id="add_item" data-id="add_wl_policy_mailbox" data-api-url='add/mailbox-policy' data-api-attr='{"username":"<?= $username; ?>","object_list":"wl"}' href="#"><span class="glyphicon glyphicon-plus"></span> <?=$lang['user']['spamfilter_table_add'];?></button>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
@ -349,7 +348,6 @@ elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == '
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="policy_bl_mailbox" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
|
<a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="policy_bl_mailbox" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
|
||||||
<a class="btn btn-sm btn-danger" id="delete_selected" data-id="policy_bl_mailbox" data-api-url='delete/mailbox-policy' href="#"><?=$lang['mailbox']['remove'];?></a></li>
|
<a class="btn btn-sm btn-danger" id="delete_selected" data-id="policy_bl_mailbox" data-api-url='delete/mailbox-policy' href="#"><?=$lang['mailbox']['remove'];?></a></li>
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<form class="form-inline" data-id="add_bl_policy_mailbox">
|
<form class="form-inline" data-id="add_bl_policy_mailbox">
|
||||||
|
@ -358,7 +356,7 @@ elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == '
|
||||||
<input type="hidden" name="username" value="<?= $username ;?>">
|
<input type="hidden" name="username" value="<?= $username ;?>">
|
||||||
<input type="hidden" name="object_list" value="bl">
|
<input type="hidden" name="object_list" value="bl">
|
||||||
<span class="input-group-btn">
|
<span class="input-group-btn">
|
||||||
<button class="btn btn-success" id="add_item" data-id="add_bl_policy_mailbox" data-api-url='add/mailbox-policy' data-api-attr='{"username":"<?= $username; ?>","object_list":"bl"}' href="#"><span class="glyphicon glyphicon-plus"></span> <?=$lang['user']['spamfilter_table_add'];?></button>
|
<button class="btn btn-default" id="add_item" data-id="add_bl_policy_mailbox" data-api-url='add/mailbox-policy' data-api-attr='{"username":"<?= $username; ?>","object_list":"bl"}' href="#"><span class="glyphicon glyphicon-plus"></span> <?=$lang['user']['spamfilter_table_add'];?></button>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -2,6 +2,10 @@
|
||||||
|
|
||||||
[[ -z ${1} ]] && { echo "No parameters given"; exit 1; }
|
[[ -z ${1} ]] && { echo "No parameters given"; exit 1; }
|
||||||
|
|
||||||
|
for bin in curl dirmngr; do
|
||||||
|
if [[ -z $(which ${bin}) ]]; then echo "Cannot find ${bin}, exiting..."; exit 1; fi
|
||||||
|
done
|
||||||
|
|
||||||
while [ "$1" != '' ]; do
|
while [ "$1" != '' ]; do
|
||||||
case "${1}" in
|
case "${1}" in
|
||||||
-p|--purge) NC_PURGE=y && shift;;
|
-p|--purge) NC_PURGE=y && shift;;
|
||||||
|
|
Loading…
Reference in New Issue