diff options
Diffstat (limited to 'usr.sbin/bsdconfig/usermgmt/groupinput')
-rwxr-xr-x | usr.sbin/bsdconfig/usermgmt/groupinput | 293 |
1 files changed, 0 insertions, 293 deletions
diff --git a/usr.sbin/bsdconfig/usermgmt/groupinput b/usr.sbin/bsdconfig/usermgmt/groupinput deleted file mode 100755 index f98e890..0000000 --- a/usr.sbin/bsdconfig/usermgmt/groupinput +++ /dev/null @@ -1,293 +0,0 @@ -#!/bin/sh -#- -# Copyright (c) 2012 Ron McDowell -# Copyright (c) 2012-2013 Devin Teske -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. -# -# $FreeBSD$ -# -############################################################ INCLUDES - -BSDCFG_SHARE="/usr/share/bsdconfig" -. $BSDCFG_SHARE/common.subr || exit 1 -f_dprintf "%s: loading includes..." "$0" -f_include $BSDCFG_SHARE/dialog.subr -f_include $BSDCFG_SHARE/mustberoot.subr -f_include $BSDCFG_SHARE/usermgmt/group_input.subr - -BSDCFG_LIBE="/usr/libexec/bsdconfig" APP_DIR="070.usermgmt" -f_include_lang $BSDCFG_LIBE/$APP_DIR/include/messages.subr - -f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" ipgm && - pgm="${ipgm:-$pgm}" - -############################################################ CONFIGURATION - -# set some reasonable defaults if /etc/adduser.conf does not exist. -[ -f /etc/adduser.conf ] && f_include /etc/adduser.conf -: ${passwdtype:="yes"} - -############################################################ FUNCTIONS - -# save_changes -# -# Save any/all settings (actions performed depend on $mode value). -# -save_changes() -{ - local funcname=save_changes - - case "$mode" in - Delete) - f_eval_catch $funcname pw 'pw groupdel "%s"' "$group_name" || - return $? - f_show_msg "$msg_group_deleted" - ;; - Add) - local cmd="pw groupadd -n '$group_name'" - [ "$group_gid" ] && cmd="$cmd -g '$group_gid'" - [ "$group_members" != "$cur_group_members" ] && - cmd="$cmd -M '$group_members'" - if [ "$pw_group_password_disable" ]; then - f_eval_catch $funcname pw '%s -h -' "$cmd" - elif [ "$group_password" ]; then - echo "$group_password" | - f_eval_catch $funcname pw '%s -h 0' "$cmd" - else - f_eval_catch $funcname pw '%s' "$cmd" - fi || return $? - f_show_msg "$msg_group_added" - ;; - Edit/View) - local cmd="pw groupmod -n '$group_name'" - [ "$group_gid" ] && cmd="$cmd -g '$group_gid'" - [ "$group_members" != "$cur_group_members" ] && - cmd="$cmd -M '$group_members'" - if [ "$pw_group_password_disable" ]; then - f_eval_catch $funcname pw '%s -h -' "$cmd" - elif [ "$group_password" ]; then - echo "$group_password" | - f_eval_catch $funcname pw '%s -h 0' "$cmd" - else - f_eval_catch $funcname pw '%s' "$cmd" - fi || return $? - f_show_msg "$msg_group_updated" - ;; - esac - - save_flag= - return $SUCCESS -} - -# dialog_title_update $mode -# -# Set the title based on the given $mode. -# -dialog_title_update() -{ - local mode="$1" - case "$mode" in - Add) f_dialog_title "$msg_add $msg_group" ;; - Edit/View) f_dialog_title "$msg_edit_view $msg_group: $group" ;; - Delete) f_dialog_title "$msg_delete $msg_group: $group" ;; - esac -} - -############################################################ MAIN - -# Incorporate rc-file if it exists -[ -f "$HOME/.bsdconfigrc" ] && f_include "$HOME/.bsdconfigrc" - -# -# Process command-line arguments -# -while [ $# -gt 0 ]; do - key="${1%%=*}" - value="${1#*=}" - f_dprintf "key=[%s] value=[%s]" "$key" "$value" - case "$key" in - mode) mode="$value" ;; - group) group="$value" ;; - esac - shift -done -f_dprintf "mode=[%s] group=[%s]" "$mode" "$group" - -# -# Initialize -# -dialog_title_update "$mode" -f_dialog_backtitle "${ipgm:+bsdconfig }$pgm" -f_mustberoot_init -menu_text= -save_flag= -hline="$hline_arrows_tab_enter" - -if [ "$mode" = "Add" ]; then - f_dialog_input_group_name || exit 0 - - f_dialog_noyes "$msg_use_default_values_for_all_account_details" - retval=$? - - if [ $retval -eq $DIALOG_ESC ]; then - exit $SUCCESS - elif [ $retval -ne $DIALOG_OK ]; then - # - # Ask a series of questions to pre-fill the editor screen. - # - # The defaults used in each dialog should allow the user to - # simply hit ENTER to proceed, because cancelling a single - # dialog will cause them to be returned to the main groupmenu. - # - - [ "$passwdtype" = "yes" ] && - { f_dialog_input_group_password || exit $SUCCESS; } - f_dialog_input_group_gid || exit $SUCCESS - f_dialog_input_group_members || exit $SUCCESS - fi -fi - -if [ "$mode" = "Edit/View" -o "$mode" = "Delete" ]; then - f_input_group "$group" || f_die 1 "$msg_group_not_found" -fi - -cur_group_name="$group_name" -cur_group_password="$group_password" -cur_group_gid="$group_gid" -cur_group_members="$group_members" - -[ "$mode" = "Delete" ] && save_flag=1 - -# -# Loop until the user decides to Exit, Cancel, or presses ESC -# -while :; do - dialog_title_update "$mode" - - menu_text= - menu_exit="$msg_exit" - if [ "$save_flag" ]; then - if [ "$mode" = "Delete" ]; then - menu_exit="$msg_delete/$msg_exit" - menu_text="$msg_delete_exit_or_cancel" - else - menu_exit="$msg_save/$msg_exit" - menu_text="$msg_save_exit_or_cancel" - fi - fi - - case "$mode" in - Delete) - menu_items=" - 'X' '$menu_exit' - '1' '$msg_group: $group_name' - '-' '$msg_password: -----' - '-' '$msg_group_id: $group_gid' - '-' '$msg_group_members: $group_members' - " # END-QUOTE - ;; - *) - menu_items=" - 'X' '$menu_exit' - '1' '$msg_group: $group_name' - '2' '$msg_password: -----' - '3' '$msg_group_id: $group_gid' - '4' '$msg_group_members: $group_members' - " # END-QUOTE - esac - - eval f_dialog_menu_size height width rows \ - \"\$DIALOG_TITLE\" \ - \"\$DIALOG_BACKTITLE\" \ - \"\$menu_text\" \ - \"\$hline\" \ - $menu_items - - f_dialog_default_fetch defaultitem - mtag=$( eval $DIALOG \ - --title \"\$DIALOG_TITLE\" \ - --backtitle \"\$DIALOG_BACKTITLE\" \ - --hline \"\$hline\" \ - --ok-label \"\$msg_ok\" \ - --cancel-label \"\$msg_cancel\" \ - --default-item \"\$defaultitem\" \ - --menu \"\$menu_text\" \ - $height $width $rows \ - $menu_items \ - 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD - ) - retval=$? - f_dialog_data_sanitize mtag - f_dialog_default_store "$mtag" - f_dprintf "retval=%u mtag=[%s]" $retval "$mtag" - - # Exit if user has either pressed ESC or chosen Cancel/No - [ $retval -eq $DIALOG_OK ] || f_die - - case "$mtag" in - X) # Exit - [ "$save_flag" ] && { save_changes || continue; } - break - ;; - 1) # Group Name - case "$mode" in - Add) f_dialog_input_group_name "$group_name" ;; - Edit/View|Delete) - f_dialog_menu_group_list "$group_name" - retval=$? - f_dialog_menutag_fetch mtag - f_dprintf "retval=%u mtag=[%s]" $retval "$mtag" - - # Loop if user has either pressed ESC or chosen Cancel/No - [ $retval -eq $DIALOG_OK ] || continue - - [ "$mtag" = "X $msg_exit" ] && continue - - group="$mtag" - f_input_group "$group" || f_die 1 "$msg_group_not_found" - cur_group_name="$group_name" - cur_group_password="$group_password" - cur_group_gid="$group_gid" - cur_group_members="$group_members" - [ "$mode" != "Delete" ] && save_flag= - esac - ;; - 2) # Password - f_dialog_input_group_password - ;; - 3) # GID - f_dialog_input_group_gid "$group_gid" - ;; - 4) # Users in Group - f_dialog_input_group_members "$group_members" - ;; - esac - -done - -exit $SUCCESS - -################################################################################ -# END -################################################################################ |