} if (verify_permission('zone_content_edit_others')) { $perm_content_edit = "all"; } elseif (verify_permission('zone_content_edit_own')) { $perm_content_edit = "own"; } else { $perm_content_edit = "none"; } if (verify_permission('zone_meta_edit_others')) { $perm_meta_edit = "all"; } elseif (verify_permission('zone_meta_edit_own')) { $perm_meta_edit = "own"; } else { $perm_meta_edit = "none"; } $user_is_zone_owner = verify_user_is_owner_zoneid($zone_id); if ($perm_meta_edit == "all" || $perm_meta_edit == "own" && $user_is_zone_owner == "1") { $meta_edit = "1"; } if (isset($_POST['slave_master_change']) && is_numeric($_POST["domain"])) { change_zone_slave_master($_POST['domain'], $_POST['new_master']); } if (isset($_POST['type_change']) && in_array($_POST['newtype'], $server_types)) { change_zone_type($_POST['newtype'], $zone_id); } if (isset($_POST["newowner"]) && is_numeric($_POST["domain"]) && is_numeric($_POST["newowner"])) { add_owner_to_zone($_POST["domain"], $_POST["newowner"]); } if (isset($_POST["delete_owner"]) && is_numeric($_POST["delete_owner"])) { delete_owner_from_zone($zone_id, $_POST["delete_owner"]); }
function delete_domains($domains) { global $db; $error = false; $return = false; $response = $db->beginTransaction(); foreach ($domains as $id) { if (verify_permission('zone_content_edit_others')) { $perm_edit = "all"; } elseif (verify_permission('zone_content_edit_own')) { $perm_edit = "own"; } else { $perm_edit = "none"; } $user_is_zone_owner = verify_user_is_owner_zoneid($id); if ($perm_edit == "all" || $perm_edit == "own" && $user_is_zone_owner == "1") { if (is_numeric($id)) { $db->exec("DELETE FROM zones WHERE domain_id=" . $db->quote($id, 'integer')); $db->exec("DELETE FROM domains WHERE id=" . $db->quote($id, 'integer')); $db->exec("DELETE FROM records WHERE domain_id=" . $db->quote($id, 'integer')); } else { error(sprintf(ERR_INV_ARGC, "delete_domains", "id must be a number")); $error = true; } } else { error(ERR_PERM_DEL_ZONE); $error = true; } } if (PEAR::isError($response)) { $response = $db->rollback(); $commit = false; } else { $response = $db->commit(); $commit = true; } if (true == $commit && false == $error) { $return = true; } return $return; }
echo " <table>\n"; echo " <tr>\n"; echo " <th> </th>\n"; echo " <th><a href=\"javascript:record_sort_by('name')\">" . _('Name') . "</a></th>\n"; echo " <th><a href=\"javascript:record_sort_by('type')\">" . _('Type') . "</a></th>\n"; echo " <th>Priority</th>\n"; echo " <th><a href=\"javascript:record_sort_by('content')\">" . _('Content') . "</a></th>\n"; echo " <th><a href=\"javascript:record_sort_by('ttl')\">" . _('TTL') . "</a></th>\n"; echo " </tr>\n"; echo " </form>\n"; foreach ($result['records'] as $record) { echo " <tr>\n"; echo " <td>\n"; echo " <a href=\"edit_record.php?id=" . $record['rid'] . "\"><img src=\"images/edit.gif\" title=\"" . _('Edit record') . " " . $record['name'] . "\" alt=\"[ " . _('Edit record') . " " . $record['name'] . " ]\"></a>\n"; if ($perm_edit != "all" || $perm_edit != "none") { $user_is_zone_owner = verify_user_is_owner_zoneid($record['zid']); } if ($perm_edit == "all" || $perm_edit == "own" && $user_is_zone_owner == "1") { echo " <a href=\"delete_record.php?id=" . $record['rid'] . "\"><img src=\"images/delete.gif\" title=\"" . _('Delete record') . " " . $record['name'] . "\" alt=\"[ " . _('Delete record') . " " . $record['name'] . " ]\"></a>\n"; } echo " </td>\n"; echo " <td>" . $record['name'] . "</td>\n"; echo " <td>" . $record['type'] . "</td>\n"; if ($record['type'] == "MX" || $record['type'] == "SRV") { echo " <td>" . $record['prio'] . "</td>\n"; } else { echo " <td> </td>\n"; } echo " <td>" . $record['content'] . "</td>\n"; echo " <td>" . $record['ttl'] . "</td>\n"; echo " </tr>\n";
function delete_owner_from_zone($zone_id, $user_id) { global $db; if (verify_permission('zone_meta_edit_others') || verify_permission('zone_meta_edit_own') && verify_user_is_owner_zoneid($_GET["id"])) { // User is allowed to make change to meta data of this zone. if (is_numeric($zone_id) && is_numeric($user_id) && is_valid_user($user_id)) { // TODO: Next if() required, why not just execute DELETE query? if ($db->queryOne("SELECT COUNT(id) FROM zones WHERE owner=" . $db->quote($user_id, 'integer') . " AND domain_id=" . $db->quote($zone_id, 'integer')) != 0) { $db->query("DELETE FROM zones WHERE owner=" . $db->quote($user_id, 'integer') . " AND domain_id=" . $db->quote($zone_id, 'integer')); } return true; } else { error(sprintf(ERR_INV_ARGC, "delete_owner_from_zone", "{$zone_id} / {$user_id}")); } } else { return false; } }
} elseif (LETTERSTART == 'all') { $zones = get_zones($perm_view, $_SESSION['userid'], "all", ROWSTART, 'all', $zone_sort_by); } else { $zones = get_zones($perm_view, $_SESSION['userid'], LETTERSTART, ROWSTART, $iface_rowamount, $zone_sort_by); $count_zones_shown = $zones == -1 ? 0 : count($zones); } foreach ($zones as $zone) { if ($zone['count_records'] == NULL) { $zone['count_records'] = 0; } $zone_owners = get_fullnames_owners_from_domainid($zone['id']); if ($iface_zonelist_serial) { $serial = get_serial_by_zid($zone['id']); } if ($perm_edit != "all" || $perm_edit != "none") { $user_is_zone_owner = verify_user_is_owner_zoneid($zone["id"]); } echo " <tr>\n"; echo " <td class=\"checkbox\">\n"; if ($count_zones_edit > 0 && ($perm_edit == "all" || $perm_edit == "own" && $user_is_zone_owner == "1")) { echo " <input type=\"checkbox\" name=\"zone_id[]\" value=\"" . $zone['id'] . "\">"; } echo " </td>\n"; echo " <td class=\"actions\">\n"; echo " <a href=\"edit.php?id=" . $zone['id'] . "\"><img src=\"images/edit.gif\" title=\"" . _('View zone') . " " . $zone['name'] . "\" alt=\"[ " . _('View zone') . " " . $zone['name'] . " ]\"></a>\n"; if ($perm_edit == "all" || $perm_edit == "own" && $user_is_zone_owner == "1") { echo " <a href=\"delete_domain.php?id=" . $zone["id"] . "\"><img src=\"images/delete.gif\" title=\"" . _('Delete zone') . " " . $zone['name'] . "\" alt=\"[ " . _('Delete zone') . " " . $zone['name'] . " ]\"></a>\n"; } echo " </td>\n"; echo " <td class=\"name\">" . $zone["name"] . "</td>\n"; echo " <td class=\"type\">" . strtolower($zone["type"]) . "</td>\n";