Пример #1
0
}
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>&nbsp;</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>&nbsp;</td>\n";
     }
     echo "       <td>" . $record['content'] . "</td>\n";
     echo "       <td>" . $record['ttl'] . "</td>\n";
     echo "      </tr>\n";
Пример #4
0
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";