Commit 24d0308e authored by Lior Spach's avatar Lior Spach

le-save-config: Refs #1421 #1298 INEP and Firefox Bug fix

INEP bug from #1421.
Firefox bug: Wrong user reference in code. The program was using the $HOME variable, the error was that it redirects to /home/root and not /home/USER/(which was expected) since the code is executed with sudo.
Signed-off-by: Lior Spach's avatarLior Spach <ls12@inf.ufpr.br>
parent 0ebdfcf1
......@@ -74,12 +74,6 @@ mainScreen () {
return $f_ret # Used to know if user pressed Cancel(1) or Ok(0)
}
#=============================================================================#
# OP1 "Salvar configurações atuais na internet"
# OP2 "Salvar configurações atuais localmente"
# OP3 "Carregar configurações da internet"
# OP4 "Carregar configurações de arquivo local"
#================================================================================#
#=======================FUNCTIONS================================================#
......@@ -120,16 +114,21 @@ createSave () {
# FIREFOX SAVING
mkdir firefox.prefs
cd firefox.prefs
cp $HOME/.mozilla/firefox/profiles.ini .
# modify the profiles.ini to aluno.default
sed -i "s/Path=.*/Path=alunos.default/g" profiles.ini
# Firefox Proxy
grep "network.proxy" $HOME/.mozilla/firefox/*.default/prefs.js | sed '/network.proxy.backup/d' > firefox_proxy
# Firefox Extensions
cp -r $HOME/.mozilla/firefox/*.default/extensions/ ./
mkdir global_extensions
cp -r /usr/lib/firefox/browser/extensions/* global_extensions/
local HOME_USER="${SUDO_USER}"
if ls /home/"${USER}"/.mozilla/firefox/*.default/ 2>1 1>/dev/null; then #if user profile directory exists
cp $HOME_USER/.mozilla/firefox/profiles.ini .
# modify 'Path' string of the copied file to alunos.default
sed -i "s/Path=.*/Path=alunos.default/g" profiles.ini #alunos.default is used in retore function
# Firefox Proxy
grep "network.proxy" $HOME_USER/.mozilla/firefox/*.default/prefs.js | sed '/network.proxy.backup/d' > firefox_proxy
# Firefox Extensions
cp -r $HOME_USER/.mozilla/firefox/*.default/extensions/ ./
mkdir global_extensions
cp -r /usr/lib/firefox/browser/extensions/* global_extensions/
else
echo "No '.default' found for user ${HOME_USER}. Skipping."
fi
cd ..
# INSTALLED PACKAGES
......@@ -403,11 +402,24 @@ done
case "$CHOICE" in
"$OP1") # Save current configurations on the cloud
if le-save-config-bridge.sh -c &&
! zenity --question --ok-label="Sim" --cancel-label="Não" \
--text="Já existe um arquivo de configuração para essa escola, deseja sobreecrevê-lo?"; then
exit 0
fi
le-save-config-bridge.sh -c
bridge_ret="$?"
case "${bridge_ret}" in
0 ) #Means there is a file. Ask if wish to overwrite.
zenity --question --ok-label="Sim" --cancel-label="Não"
--text="Já existe um arquivo de configuração para essa escola, deseja sobreecrevê-lo?";
[ "$?" = "1" ] && exit 0
;;
2 ) #permission denied
zenity --error --title="" --text=""
exit 12 #(10+2)
;;
9 ) #No config file exist yet
;;
esac
(echo "Begin" ; createSave) | zenity --progress --pulsate --auto-close --auto-kill \
--title="Construindo arquivo para enviar ao servidor" \
--text="Este processo pode demorar alguns segundos."
......@@ -427,11 +439,10 @@ case "$CHOICE" in
bridge_ret="$?"
kill -9 $progress_pid
if [ "$bridge_ret" != "0" ]; then
bridge_ret=$(( 10 + $bridge_ret )) #Bridge error code exit(10+x)
zenity --error --title="Erro" --text="Erro ao enviar arquivo para o servidor (Código: $bridge_ret)"
exit $bridge_ret
zenity --error --title="Erro" --text="Erro ao enviar arquivo para o servidor (Código: $((10 + $bridge_ret)))"
exit $((10 + $bridge_ret)) #Bridge error code exit(10+x)
fi
rm -rf $NEW_SAVE_FILE
;;
"$OP2") # Save current configuration on the local machine
......@@ -455,18 +466,28 @@ case "$CHOICE" in
--height="120" --width="500" &
progress_pid="$!"
getFromCloud $CONFIG_LOCAL_FILE
ret_getFC="$?" #return from le-save-config-bridge.sh
ret_getFC="$?" #return from bridge
kill -9 $progress_pid
#######-----
if [ "$ret_getFC" = "10" ]; then
#If here, INEP file should exist
MAC_ADDR_MAQUINA="$(ifconfig | grep HWaddr | awk -F HWaddr '{print $NF}' | cut -b 2-)"
INEP="$(cat /opt/seed_mec/SEED2/client/conf/inep)"
zenity --error --title="" --text="Erro: você não tem permissão para enviar ou receber o arquivo na nuvem. Esta máquina $MAC_ADDR_MAQUINA não faz parte do laboratório da escola cujo INEP é $INEP."
elif [ "$ret_getFC" != "0" ]; then
zenity --error --title="" --text="Ocorreu um erro ao tentar baixar arquivo da nuvem"
exit $(( 10 + $ret_getFC ))
fi
#######---------------------------
case $ret_getFC in
2 ) #Error 2: INEP not found
zenity --error --title="Erro" --text="Não foi possível encontrar o INEP da máquina."
exit 12 #erro 10+2
;;
10 ) #Error 10: Permission Denied
#If here, INEP file should exist
MAC_ADDR_MAQUINA="$(ifconfig | grep HWaddr | awk -F HWaddr '{print $NF}' | cut -b 2-)"
INEP="$(cat /opt/seed_mec/SEED2/client/conf/inep)"
zenity --error --title="Erro" --text="Erro: você não tem permissão para enviar ou receber o arquivo na nuvem. Esta máquina $MAC_ADDR_MAQUINA não faz parte do laboratório da escola cujo INEP é $INEP."
exit 20 #erro 10+10
;;
0 ) #Fine, continue
;;
* )
zenity --error --title="Erro" --text="Ocorreu um erro ao tentar baixar arquivo da nuvem. (Código: $(( $ret_getFC + 10 )))"
exit $(( 10 + $ret_getFC ))
;;
esac
if [ "$CONFIG_LOCAL_FILE" = "" ]; then
exit 4
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment