Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Variaveis
- PROXIMA=PRIMEIRA
- USER=""
- # Funções definidas
- function usando()
- {
- existe=$USER
- id -u $existe &> /dev/null
- }
- function novo()
- {
- local user=$USER
- local pass=$PASSWORD
- useradd -p $pass $user
- }
- # Verificando se o usuário possui privilégios de root
- if [ ! $UID -eq 0 ]
- then
- dialog --title 'Erro' --backtitle 'Controle de Contas.' --infobox 'Você não tem poderes de root. Saindo...' 0 0
- sleep 3
- exit 1
- fi
- # enquanto o laço não for quebrado propositalmente
- # o laco de dentro continuará sendo executado
- while :
- do
- # Loop principal. Em cada tela são definidas as variáveis 'ANTERIOR' e
- # 'PROXIMA' que definem os rumos da navegação.
- while :
- do
- case $PROXIMA in
- PRIMEIRA)
- PROXIMA=USE
- dialog --title 'Bem-vindo' --backtitle 'Controle de Contas.' --msgbox 'Bem-vindo ao Controle de Contas de Usuário.' 10 20
- ;;
- USE)
- ANTERIOR=PRIMEIRA
- PROXIMA=PASSWORD
- USER=$(dialog --stdout --title 'Usuário' --backtitle 'Controle de Contas.' --inputbox 'Digite o seu nome:' 0 0)
- if [ -z $USER ]
- then
- dialog --msgbox 'Informe um nome de usuário.' 0 0
- PROXIMA=USE
- continue
- fi
- ;;
- PASSWORD)
- ANTERIOR=USE
- PROXIMA=FINAL
- PASSWORD=$(dialog --stdout --title 'Senha' --backtitle 'Controle de Contas.' --passwordbox 'Digite sua senha:' 0 0)
- ;;
- FINAL)
- if usando $USER
- then
- dialog --title 'Erro!' --backtitle 'Controle de Contas.' --msgbox "O Usuário $USER já existe no sistema." 0 0
- PROXIMA=$ANTERIOR
- else
- break
- fi
- esac
- # Fazendo o tratamente dos Return Codes de todas as telas:
- # Caso seja CANCELAR=1, volta para a tela anterior
- # Caso seja pressionado ESC, o programa é encerrado
- RETORNO=$?
- if [ $RETORNO -eq 1 ]
- then
- PROXIMA=$ANTERIOR
- fi
- if [ $RETORNO -eq 255 ]
- then
- exit 1
- fi
- done
- if novo $USER $PASSWORD
- then
- dialog --title 'Sucesso!' --backtitle 'Controle de Contas.' --msgbox "O Usuário $USER foi adicionado com sucesso." 0 0
- break
- else
- dialog --title 'Erro!' --backtitle 'Controle de Contas.' --infobox 'Não foi possível adicionar o usuário.' 0 0
- fi
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement