optimizations and minor fixes for user_shifts and admin_user

This commit is contained in:
Jan-Philipp Litza 2012-12-28 17:47:02 +01:00
parent c5438d5228
commit 9270b54eb1
2 changed files with 10 additions and 8 deletions

View File

@ -102,8 +102,12 @@ function admin_user() {
$angel_types[$angel_type['id']] = $angel_type['name']; $angel_types[$angel_type['id']] = $angel_type['name'];
if (isset ($_REQUEST['submit_user_angeltypes'])) { if (isset ($_REQUEST['submit_user_angeltypes'])) {
$selected_angel_types = array_intersect($_REQUEST['selected_angel_types'], array_keys($angel_types)); $selected_angel_types = isset($_REQUEST['selected_angel_types']) && is_array($_REQUEST['selected_angel_types'])?
$accepted_angel_types = array_unique(array_diff(array_intersect($_REQUEST['accepted_angel_types'], array_keys($angel_types)), $nonrestricted_angel_types)); array_intersect($_REQUEST['selected_angel_types'], array_keys($angel_types))
: array();
$accepted_angel_types = isset($_REQUEST['accepted_angel_types']) && is_array($_REQUEST['accepted_angel_types'])?
array_unique(array_diff(array_intersect($_REQUEST['accepted_angel_types'], array_keys($angel_types)), $nonrestricted_angel_types))
: array();
if (in_array("admin_user_angeltypes", $privileges)) if (in_array("admin_user_angeltypes", $privileges))
$selected_angel_types = array_merge((array) $selected_angel_types, $accepted_angel_types); $selected_angel_types = array_merge((array) $selected_angel_types, $accepted_angel_types);
$selected_angel_types = array_unique($selected_angel_types); $selected_angel_types = array_unique($selected_angel_types);

View File

@ -67,7 +67,7 @@ function user_settings() {
if (isset ($_REQUEST['tshirt_size']) && isset ($tshirt_sizes[$_REQUEST['tshirt_size']])) if (isset ($_REQUEST['tshirt_size']) && isset ($tshirt_sizes[$_REQUEST['tshirt_size']]))
$tshirt_size = $_REQUEST['tshirt_size']; $tshirt_size = $_REQUEST['tshirt_size'];
else { elseif($enable_tshirt_size) {
$ok = false; $ok = false;
} }
@ -100,12 +100,10 @@ function user_settings() {
// Assign angel-types // Assign angel-types
$user_angel_type_info = array(); $user_angel_type_info = array();
foreach ($angel_types_source as $angel_type) { sql_query("DELETE FROM `UserAngelTypes` WHERE `user_id`='" . sql_escape($user['UID']) . "' AND `angeltype_id` IN (" . implode(",", array_diff(array_keys($angel_types), $selected_angel_types)) . ")");
if (!in_array($angel_type['id'], $selected_angel_types)) foreach ($angel_types_source as $angel_type)
sql_query("DELETE FROM `UserAngelTypes` WHERE `user_id`=" . sql_escape($user['UID']) . " AND `angeltype_id`=" . sql_escape($angel_type['id']) . " LIMIT 1"); if (in_array($angel_type['id'], $selected_angel_types))
else
$user_angel_type_info[] = $angel_type['name']; $user_angel_type_info[] = $angel_type['name'];
}
foreach ($selected_angel_types as $selected_angel_type_id) { foreach ($selected_angel_types as $selected_angel_type_id) {
if (sql_num_query("SELECT * FROM `UserAngelTypes` WHERE `user_id`=" . sql_escape($user['UID']) . " AND `angeltype_id`=" . sql_escape($selected_angel_type_id) . " LIMIT 1") == 0) if (sql_num_query("SELECT * FROM `UserAngelTypes` WHERE `user_id`=" . sql_escape($user['UID']) . " AND `angeltype_id`=" . sql_escape($selected_angel_type_id) . " LIMIT 1") == 0)