Esempio n. 1
0
function export_add_form($target, $default = false)
{
    global $xtpl, $NAS_QUOTA_UNITS, $NAS_EXPORT_TYPES;
    $empty = array(0 => $_GET["for"] == "member" ? "--- new member ---" : "--- VPS owner ---");
    $members = members_list();
    $ds_help = _("Allowed chars: a-z A-Z 0-9 _ : . - /<br>" . "Must NOT start with '/'.<br>" . "Must NOT contain more '/' in row.<br>" . "Create child exports using '/'. They will share parent's quota.");
    if ($default) {
        $members = $empty + $members;
        $ds_help .= "<br>%member_id% - ID of newly created member";
        if ($_GET["for"] == "vps") {
            $ds_help .= "<br>%veid% - ID of newly created VPS";
        }
    }
    $xtpl->table_title(_("Add export"));
    $xtpl->form_create($target, 'post');
    if ($_SESSION["is_admin"]) {
        $xtpl->form_add_select(_("Member") . ':', 'member', $members, $_POST["member"]);
    }
    $xtpl->form_add_select(_("Pool") . ':', 'root_id', nas_root_list_where($_SESSION["is_admin"] ? '' : "user_export = 1"), $_POST["root_id"]);
    if ($_SESSION["is_admin"]) {
        $xtpl->form_add_input(_("Dataset") . ':', 'text', '30', 'dataset', $_POST["dataset"], $ds_help);
    }
    $xtpl->form_add_input(_("Path") . ':', 'text', '30', 'path', $_POST["path"], $ds_help);
    $xtpl->table_td(_("Quota") . ':');
    $xtpl->form_add_input_pure('text', '30', 'quota_val', $_POST["quota_val"] ? $_POST["quota_val"] : '0');
    $xtpl->form_add_select_pure('quota_unit', $NAS_QUOTA_UNITS, $_POST["quota_unit"]);
    $xtpl->table_td(_("0 is none"));
    $xtpl->table_tr();
    if ($_SESSION["is_admin"]) {
        $xtpl->form_add_checkbox(_("User editable") . ':', 'user_editable', '1', $_POST["user_editable"]);
        $xtpl->form_add_select(_("Type") . ':', 'type', $NAS_EXPORT_TYPES, $_POST["type"]);
    }
    $xtpl->form_out(_("Export"));
}
Esempio n. 2
0
 $xtpl->title(_("Network-attached storage"));
 $export_add_target = '?page=nas&action=export_add_save';
 $mount_export_add_target = '?page=nas&action=mount_export_add_save';
 $mount_custom_add_target = '?page=nas&action=mount_custom_add_save';
 $mount_edit_target = '?page=nas&action=mount_edit_save';
 switch ($_GET["action"]) {
     case "export_add":
         export_add_form($export_add_target);
         $xtpl->sbar_add(_("Back"), '?page=nas');
         break;
     case "export_add_save":
         if ($_POST["node"] && $_POST["path"]) {
             $ok = false;
         }
         $m = new member_load($_SESSION["is_admin"] ? $_POST["member"] : $_SESSION["member"]["m_id"]);
         foreach (nas_root_list_where($_SESSION["is_admin"] ? '' : "user_export = 1") as $r_id => $r) {
             if ($r_id == $_POST["root_id"]) {
                 $ok = true;
             }
         }
         if (($path = is_ds_valid($_POST["path"])) === false) {
             $xtpl->perex(_("Path contains forbidden characters"), '');
             export_add_form($export_add_target);
         } else {
             if ($_SESSION["is_admin"] && ($ds = is_ds_valid($_POST["dataset"])) === false) {
                 $xtpl->perex(_("Dataset contains forbidden characters"), '');
                 export_add_form($export_add_target);
             } else {
                 if ($ok && $m->exists) {
                     nas_export_add($_SESSION["is_admin"] ? $_POST["member"] : $_SESSION["member"]["m_id"], $_POST["root_id"], $_SESSION["is_admin"] ? $ds : NULL, $path, $_POST["quota_val"] * (2 << $NAS_UNITS_TR[$_POST["quota_unit"]]), $_SESSION["is_admin"] ? $_POST["user_editable"] : -1, $_SESSION["is_admin"] ? $_POST["type"] : "data");
                     notify_user(_("Export created"), _("Export was created."));