Contribuicoes/Exchange: migra_exchange_expresso.sh

File migra_exchange_expresso.sh, 85.0 KB (added by gabriel.malheiros, 13 years ago)

Script

Line 
1#!/bin/bash
2# Descricao: Script para migracao de mensagens, agenda, contatos  de um servidor
3# MS Exchange 2000 para Expresso
4# Author: Gabriel Gomes Malheiros <gabriel.malheiros@serpro.gov.br>
5# Versao: 0.99
6#
7# Instalação:
8# O script necessita que haja no sistema os seguintes pacotes instalados e scripts:
9# -> nd, expect, lynx, openldap-client, imapcreate.pl, imapsync.
10#
11# É preciso que o script crie fisicamente as caixas dos usuarios,
12# ele deve ser executado da maquina do Expresso mail,
13#
14# O servico IMAP do MS Exchange tambem deve estar ativo.
15#
16# Deve ser gerado um arquivo de configuração com as variáveis do script
17# Observacao: O script necessita  ler os usuarios a serem migrados no arquivo
18# $USRFILE, que está no arquivo de configuração . Este arquivo deve conter um usuario por linha,
19# sendo que em cada linha deve ter 5 colunas: LOGIN{exchannge} CPF/LOGIN{expresso} PERFIL{em Megabytes} Email CPF{cpf do responsável}
20# Ex:
21# Mjackson 15152323120 300M michael.jackson@hollywood.com 15152323120
22# aspworldt asp.world 500M  asp.world@surf.org 55566633321
23#
24# Execução:
25#
26# sh migra_exchange_expresso.sh 1 -c arquivo_com_as_variaveis.conf 
27# neste exemplo o arquivo usuarios1.txt e arquivo_com_as_variaveis.conf deve estar na mesma pasta do script.
28##########################################
29# Início de Tratamento de parametros ##########
30# Força o usuário passar o parametro -c nomedoarquivoconf.conf
31if [ -z $2 ] ; then
32        echo -e "Sintaxe1: migracao.sh {numero} -c ARQUIVO.conf\n {numero}: numero para execução em paralelo"
33        exit 1
34elif [ $2 != "-c" ] ; then # Se paramentro nao for -c
35        echo -e "Sintaxe2: migracao.sh {numero} -c ARQUIVO.conf\n {numero}: numero para execução em paralelo"
36        exit 1
37elif [ -z $3 ] ; then #Se vazio o argumento
38        echo -e "Sintaxe3: migracao.sh {numero} -c ARQUIVO.conf\n {numero}: numero para execução em paralelo"
39        exit 1
40fi
41
42if [ $( echo "$3" | awk -F "." '{print $NF}') != "conf" ] ; then # deve existir um .conf no final
43        echo  -e "Sintaxe4: migracao.sh {numero} -c ARQUIVO.conf\n {numero}: numero para execução em paralelo"
44        exit 1
45fi
46
47# Fim de Tratamento de parametros #############
48
49for line in `cat $3 |  grep -v '^#' | cut -f1 -d= `; do
50     dados=$(cat $3 |  grep -v '^#' | grep ${line}= | cut -f2-14 -d= | sed 's/"//g' ) 
51    novo_dado=$(echo $dados | sed 's/  //g')
52     export  ${line}="$novo_dado"
53done
54
55USRFILE="usuarios$1.txt"
56TMPTEMP=`mktemp`
57TMPLDIF="${TMPTEMP}.ldif"
58LOCAL_INICIAL=`pwd`
59ARQUIVO="${TMPTEMP}.cont"
60exparqsql="${TMPTEMP}.sql"
61
62
63
64####################################################
65############# Lendo o arquivo dos usuarios #########
66####################################################
67
68usuarios ()
69{
70 cd $LOCAL_INICIAL
71  if [ -f "${USRFILE}" ];then
72   USRCOUNT=`cat ${USRFILE} | wc -l`
73   for i in `seq 1 ${USRCOUNT}`; do
74     cd ${LOCAL_INICIAL}
75     USRFULL=`cat ${USRFILE} | sed -n ${i}p`
76     export LOGINUSR=`echo ${USRFULL} | awk -F' ' '{print $1}'`
77     export LOGCONT=`echo ${USRFULL} | awk -F' ' '{print $1}'`     
78     export VARCPF=`echo ${USRFULL} | awk -F' ' '{print $2}'`
79     export PER=$(echo ${USRFULL} | awk -F' ' '{print $3}')
80     export mail=$(echo ${USRFULL} | awk -F' ' '{print $4}')
81     export responsavel=$(echo ${USRFULL} | awk -F' ' '{print $5}')
82     export SENHAPADRAO=$(echo $responsavel | cut -c1-8)
83   monta_compartilhamento
84  done
85  fi
86 echo -e "\n\n \t Usuario $LOGINUSR  migrado para $VARCPF \n\n\n\n"
87}
88
89####################################################
90########## Montando compartilhamento ###############
91####################################################
92
93monta_compartilhamento() {
94 busca_usuarios
95}
96####################################################
97############### funcao para colocar dados no banco #
98####################################################
99
100put_agenda() {
101       hostbanco="-@$EXP_HOST"
102       echo -e " INSERT INTO phpgw_cal ( cal_id, uid, owner, datetime, mdatetime, edatetime, priority,cal_type,is_public, title, location, description, reference ) VALUES ( DEFAULT,'$hostbanco','$UID_NUMBER','$ds_start','$mdatetime' ,'$ds_end',  2,'$tipop',1,E'$titulo',E'$cidade',E'$Coment', 0);" >  $exparqsql
103        psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass 
104
105       echo -e " select max(cal_id) from phpgw_cal where owner='$UID_NUMBER';" > $exparqsql
106       ID_ATUAL_CALL=`psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass`
107       ID_ATUAL_CALI=`echo $ID_ATUAL_CALL | cut -f3 -d" "`
108       ID_ATUAL_CAL=$ID_ATUAL_CALI
109           
110       echo -e "INSERT INTO phpgw_cal_repeats ( cal_id, recur_type, recur_use_end, recur_enddate, recur_interval,recur_data, recur_exception) VALUES ( '$ID_ATUAL_CAL','$recurtype', 0,'$ds_endS','$intervalo', '$recurdata ', DEFAULT);
111        INSERT INTO phpgw_cal_user ( cal_id, cal_login, cal_status, cal_type) VALUES ( '$ID_ATUAL_CAL','$UID_NUMBER',  'A','u');"  > $exparqsql
112        psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass 
113
114
115}
116
117
118function adicionar_banco()
119{
120     echo -e "INSERT INTO phpgw_acl ( acl_appname, acl_location, acl_account, acl_rights) values  ( 'phpgw_group', '777771001','$UID_NUMBER', 1);
121     INSERT INTO phpgw_acl ( acl_appname, acl_location, acl_account, acl_rights) values ( 'preferences', 'changepassword', '$UID_NUMBER', 1);
122     INSERT INTO phpgw_acl ( acl_appname, acl_location, acl_account, acl_rights) values  ( 'preferences',  'run','$UID_NUMBER', 1);
123     INSERT INTO phpgw_acl ( acl_appname, acl_location, acl_account, acl_rights) values ( 'calendar','run', '$UID_NUMBER', 1);
124     INSERT INTO phpgw_acl ( acl_appname, acl_location, acl_account, acl_rights) values ( 'contactcenter','run', '$UID_NUMBER', 1);
125     INSERT INTO phpgw_acl ( acl_appname, acl_location, acl_account, acl_rights) values ( 'expressoMail1_2','run', '$UID_NUMBER', 1);
126     INSERT INTO phpgw_acl ( acl_appname, acl_location, acl_account, acl_rights) values ( 'jabberit_messenger','run', '$UID_NUMBER', 1);
127     INSERT INTO phpgw_acl ( acl_appname, acl_location, acl_account, acl_rights) values ( 'help','run', '$UID_NUMBER', 1); "  > $exparqsql
128     #INSERT INTO phpgw_acl ( acl_appname, acl_location, acl_account, acl_rights) values ( 'workflow','run', '$UID_NUMBER', 1);
129     psql -h$EXP_PG_HOST $EXP_PG_DB $EXP_PG_USER  -f $exparqsql < ${TMPTEMP}.db.pass
130
131}
132function adicionar_imap()
133{
134   su cyrus  -c "$imap_cria -u $EXP_ADMIN -p $EXP_ADMIN_PASSWD -s -m $UID_OX -q $PER $EXP_IMAP_HOST"
135   # su cyrus  -c  "$imap_cria -u $EXP_ADMIN -p $EXP_ADMIN_PASSWD -s -m $UID_OX/Lixeira,$UID_OX/Enviados,$UID_OX/Rascunho $EXP_IMAP_HOST"
136   su cyrus -c "$squatter -C $conf_cyrus -s -r user/$UID_OX"
137   #sleep 10
138}
139
140
141####################################################
142################# Agenda ###########################
143####################################################
144
145
146migrar_agenda() {
147  echo "Migrando agenda do usuario $LOGINUSR"
148  export calal="Calendar"
149  UID_OX=$(echo $UID_OX | sed 's/\./\^/g')
150  if [ $(echo $UID_OX | grep "^[0-9]" ) ]
151  then
152    rm -f "${IMAP_PATH}"/q/user/$UID_OX/$calal/cyrus*
153    ls --time-style=+%H -l ${IMAP_PATH}/q/user/$UID_OX/$calal/ | grep ^- | awk -F' ' '{print $7}'  > ${TMPTEMP}.cont.tmp
154  else
155    rm -f ${IMAP_PATH}/${UID_OX:0:1}/user/$UID_OX/$calal/cyrus*
156    ls --time-style=+%H -l ${IMAP_PATH}/${UID_OX:0:1}/user/$UID_OX/$calal/ | grep ^- | awk -F' ' '{print $7}' > ${TMPTEMP}.cont.tmp
157  fi
158
159
160  #VER_UID=${UID_OX:0:1}
161 
162  #if [ $UID_OX ==  ]
163  #rm -f ${IMAP_PATH}/q/user/$UID_OX/$calal/cyrus*
164  #ls  ${IMAP_PATH}/q/user/$UID_OX/$calal/ > ${TMPTEMP}.cont.tmp
165  LINHAS=`cat ${TMPTEMP}.cont.tmp | wc -l`;                   # abrindo cada arquivo .eml da pasta Calendario no       
166  for i in `seq 1 $LINHAS`;do                            # compartilhamento do drive M na pasta do usuario
167      arqtrabalho1=`sed -n ${i}p ${TMPTEMP}.cont.tmp`
168  if [ $(echo $UID_OX | grep "^[0-9]" ) ]
169  then
170      arqtrabalho="${IMAP_PATH}/q/user/$UID_OX/$calal/$arqtrabalho1"
171  else
172      arqtrabalho="${IMAP_PATH}/${UID_OX:0:1}/user/$UID_OX/$calal/$arqtrabalho1"
173  fi
174     echo "----AGENDAMENTO $i----";
175      inicio_agenda=$(cat $arqtrabalho | grep -n -m1 "BEGIN:VEVENT" | cut -f1 -d:)
176       if [ -z $inicio_agenda ];then
177           echo -e "erro arquivo sem agendamento"
178           continue;
179      fi
180      fim_agenda=$(cat $arqtrabalho | grep -n -m1 "END:VEVENT" | cut -f1 -d:)   
181      difrenca_agenda=$(($fim_agenda-$inicio_agenda))
182      iconv -f UTF-8 -t LATIN1//TRANSLIT $arqtrabalho > ${TMPTEMP}.tst1
183      if [ $? == 0 ];then
184        mv ${TMPTEMP}.tst1 $arqtrabalho
185      fi
186      titulo_truck=`cat $arqtrabalho | grep -m1 SUMMARY | cut -f2-8 -d: | tr -d [=\'=] | sed -e 's/\\\//g' | tr -d '\r' | tr -d '\n' `
187      export titulo=${titulo_truck:0:79}   
188      export cidade=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^LOCATION | cut -f2 -d: | tr -d [=\'=]`
189     
190      datainia=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1  ^DTSTART | cut -f2 -d: | sed 's/\\r//g'`
191      explinn=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -n -m1 ^DTSTART |  cut -d: -f1)
192      let explinn=$explinn+1
193      datainib=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | sed -n ${explinn}p | grep -e "^ " | sed -e 's/^ //g')
194      dataini="${datainia}${datainib}"
195
196      diaini=`echo $dataini | cut -c7-8`
197      mesini=`echo $dataini | cut -c5-6`
198      anoini=`echo $dataini | cut -c1-4`
199      horaini=`echo $dataini | cut -c10-11`
200      minini=`echo $dataini | cut -c12-13`
201      segini=`echo $dataini | cut -c14-15`
202      if [ ! -z $horaini ];then
203         export timestampfield01="$anoini-$mesini-$diaini $horaini:$minini:$segini"   
204      else
205         export timestampfield01="$anoini-$mesini-$diaini"   
206      fi 
207      date -d "$timestampfield01" +%s &> /dev/null
208      if [ $? == 1 ];then
209         export timestampfield01="$anoini-$mesini-$diaini 01:$minini:$segini"         
210      fi
211      export ds_start=`date -d "$timestampfield01" +%s`
212
213      datafima=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^DTEND | cut -f2 -d: | sed 's/\\r//g'`
214      explinn=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -n -m1 ^DTEND |  cut -d: -f1)
215      let explinn=$explinn+1
216      datafimb=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | sed -n ${explinn}p  | grep -e "^ " | sed -e 's/^ //g')
217      datafim="${datafima}${datafimb}"
218
219      #datafim=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^DTEND | cut -f2 -d:`
220      diafim=`echo $datafim | cut -c7-8`
221      mesfim=`echo $datafim | cut -c5-6`
222      anofim=`echo $datafim | cut -c1-4`
223      horafim=`echo $datafim | cut -c10-11`
224      minfim=`echo $datafim | cut -c12-13`
225      segfim=`echo $datafim | cut -c14-15`
226      if [ ! -z $horafim ];then
227         export timestampfield02="$anofim-$mesfim-$diafim $horafim:$minfim:$segfim"
228      else
229         export timestampfield02="$anofim-$mesfim-$diafim"
230      fi
231      date -d "$timestampfield02" +%s &> /dev/null
232      if [ $? == 1 ];then
233         export timestampfield02="$anoini-$mesini-$diaini 01:$minini:$segini"
234      fi
235   
236      export ds_end=`date -d "$timestampfield02" +%s`       
237 
238      coment_init=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -n -m1 ^DESCRIPTION | cut -f1 -d:)
239      coment_SEQUE=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -n -m1 ^SEQUENCE | cut -f1 -d:)
240      if [ ! -z $coment_init ];then
241        if [ ! -z $coment_SEQUE ];then
242         coment_fim=$((${coment_SEQUE}-1))
243         interval=$((${coment_fim}-${coment_init}))
244         echo $interval | grep "-" > /dev/null
245         if [  $? -eq 0 ];then
246           interval=0;
247         fi
248        else
249          interval=0;     
250        fi   
251      else
252         interval=0;
253      fi     
254      export Coment=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -A ${interval} -m1  ^DESCRIPTION | sed 's/DESCRIPTION://g' | sed -e 's/\\\//g' | tr -d [=\'=]`
255
256      criadoa=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^CREATED | cut -f2 -d: | sed 's/\\r//g'`
257      explinn=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -n -m1 ^CREATED |  cut -d: -f1)
258      let explinn=$explinn+1
259      criadob=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | sed -n ${explinn}p  | grep -e "^ " | sed -e 's/^ //g')
260      criado="${datafima}${datafimb}"
261
262      #criado=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^CREATED | cut -f2 -d:`
263      diacria=`echo $criado | cut -c7-8`
264      mescria=`echo $criado | cut -c5-6`
265      anocria=`echo $criado | cut -c1-4`
266      horacria=`echo $criado | cut -c10-11`
267      mincria=`echo $criado | cut -c12-13`
268      segcria=`echo $criado | cut -c14-15`
269      if [ ! -z $horacria ];then
270          export datacria="$anocria-$mescria-$diacria $horacria:$mincria:$segcria"
271      else 
272          export datacria="$anocria-$mescria-$diacria"
273      fi
274      date -d "$datacria" +%s &> /dev/null
275      if [ $? == 1 ];then
276         export datacria="$anoini-$mesini-$diaini 01:$minini:$segini"
277      fi
278      export mdatetime=$(date -d "$datacria" +%s)
279
280 
281      #modificado=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^LAST-MODIFIED | cut -f2 -d:`
282      #diamod=`echo $modificado | cut -c7-8`
283      #mesmod=`echo $modificado | cut -c5-6`
284      #anomod=`echo $modificado | cut -c1-4`
285      #horacr=`echo $modificado | cut -c10-11`
286      #let horamod=$horacr-3
287      #minmod=`echo $modificado | cut -c12-13`
288      #segmod=`echo $modificado | cut -c14-15`
289      #export datamodifica="$anomod-$mesmod-$diamod $horamod:$minmod:$segmod"
290      cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE
291      if [  $? -eq 0 ];then                         # extrai todas as informaÃcoes e verifica o tipo do agendamento 
292         tipo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f2 -d= | cut -f1 -d\;`
293         if [ $tipo = "DAILY" ];then
294                 
295             #################### Diario ##############################
296         
297            cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | grep UNTIL
298            if [  $? -eq 0 ];then
299               final=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | cut -f1 -d\;`
300               cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL
301               if [  $? -eq 0 ];then
302                 export intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;`
303               else
304                 export intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;`
305               fi     
306               anofin=`echo $final | cut -c1-4`
307               mesfin=`echo $final | cut -c5-6`
308               diafin=`echo $final | cut -c7-8`
309               horafin=`echo $final | cut -c10-11`
310               minfin=`echo $final | cut -c12-13`
311               segfin=`echo $final | cut -c14-15`
312               tipo1=`echo $tipo | tr 'A-Z' 'a-z'`
313               export timestampfield02="$anofin-$mesfin-$diafin $horafim:$minfim:$segfim"
314               
315              ############# pode ter problema aqui com o edatetime
316
317               export ds_endS=`date -d "$timestampfield02" +%s`
318               export recurdata=0 
319               export tipop=M
320               export recurtype=1 
321               put_agenda
322            else
323            cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | grep COUNT
324               if [  $? -eq 0 ];then
325                  contagem=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | cut -f1 -d\; )
326                   
327                  cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL
328                  if [  $? -eq 0 ];then
329                     intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;`
330                  else
331                     intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;`
332                  fi
333               else
334                  contagem=1500;
335                  cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep ^RRULE | cut -f3 -d= | grep INTERVAL
336                  if [  $? -eq 0 ];then
337                     intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;`
338                  else
339                     intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | cut -f1 -d\;`
340                  fi
341               fi
342               tipo1=`echo $tipo | tr 'A-Z' 'a-z'`
343               #let anofim1=$anofim+4
344               export tipop=M
345               export recurtype=1
346               export recurdata=0   
347               #export timestampfield02="$anofim1-$mesfim-$diafim $horafim:$minfim:$segfim"
348               #ds_endS=`date -d "$timestampfield02" +%s`
349               somar_dias=$((86400*$contagem))
350               export ds_endS=$(($ds_start+$somar_dias))
351               put_agenda 
352            fi
353                     
354         elif [ $tipo = "WEEKLY" ];then
355             
356              cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | grep UNTIL
357              if [  $? -eq 0 ];then
358                 
359                 ######################## Semanal ###################################
360                     
361                 t=3
362                 final=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | cut -f1 -d\;`
363                 cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL
364                 if [  $? -eq 0 ];then
365                    let t=$t+2   
366                    export intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | cut -f1 -d\;`
367                 else
368                    let t=$t+1
369                    export intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | cut -f1 -d\;`
370                 fi
371                 let t=$t+1 
372                 diasem=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | cut -f1 -d\;`
373                 anofin=`echo $final | cut -c1-4`
374                 mesfin=`echo $final | cut -c5-6`
375                 diafin=`echo $final | cut -c7-8`
376                 horafin=`echo $final | cut -c10-11`
377                 minfin=`echo $final | cut -c12-13`
378                 segfin=`echo $final | cut -c14-15`
379                 tipo1=`echo $tipo | tr 'A-Z' 'a-z'`
380                 export timestampfield02="$anofin-$mesfin-$diafin $horafim:$minfim:$segfim"
381                 export ds_endS=`date -d "$timestampfield02" +%s`
382                 rpt=`echo $diasem | awk -F',' '{print NF}'`
383                 export tipop=M
384                 export recurtype=2
385                 recurdata=0;
386                 for h in `seq 1 $rpt`;do
387                      dia=`echo $diasem | cut -f$h -d\, |  sed 's/ //g' | sed 's/\\r//g'`
388                      if [ $dia = "SU" ];then
389                         conta=0
390                      elif [ $dia = "MO" ];then
391                         conta=1
392                      elif [ $dia = "TU" ];then
393                         conta=2
394                      elif [ $dia = "WE" ];then
395                         conta=3
396                      elif [ $dia = "TH" ];then
397                         conta=4
398                      elif [ $dia = "FR" ];then
399                         conta=5
400                      elif [ $dia = "SA" ];then
401                         conta=6
402                      fi   
403                      export recurdata=$(($recurdata+2**$conta))
404                  done                     
405                 put_agenda
406             else
407                 cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | grep COUNT
408                 if [  $? -eq 0 ];then
409                    contagem=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | cut -f1 -d\; ) 
410                    cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL
411                    if [  $? -eq 0 ];then
412                      export intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;`
413                      diasem=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d=`
414                    else
415                      export intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;`
416                      diasem=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;`
417                    fi     
418                 else
419                    contagem=214
420                    cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep ^RRULE | cut -f3 -d= | grep INTERVAL
421                    if [  $? -eq 0 ];then
422                      export intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;`
423                      diasem=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d=`
424                    else
425                      export intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | cut -f1 -d\;`
426                      diasem=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;`
427                    fi
428                 fi   
429                 #let anofim1=$anofim+4
430                 #export timestampfield02="$anofim1-$mesfim-$diafim $horafim:$minfim:$segfim"
431                 #export ds_endS=`date -d "$timestampfield02" +%s`
432                 somar_semanas=$((604800*$contagem))
433                 export ds_endS=$(($ds_start+$somar_semanas))
434                 rpt=`echo $diasem | awk -F',' '{print NF}'`
435                 tipo1=`echo $tipo | tr 'A-Z' 'a-z'`
436                 export tipop=M
437                 export recurtype=2
438                 recurdata=0;
439                 for h in `seq 1 $rpt`;do
440                      dia=`echo $diasem | cut -f$h -d, |  sed 's/\\r//g'`
441                      if [ $dia = "SU" ];then
442                         conta=0
443                      elif [ $dia = "MO" ];then
444                         conta=1
445                      elif [ $dia = "TU" ];then
446                         conta=2
447                      elif [ $dia = "WE" ];then
448                         conta=3
449                      elif [ $dia = "TH" ];then
450                         conta=4
451                      elif [ $dia = "FR" ];then
452                         conta=5
453                      elif [ $dia = "SA" ];then
454                         conta=6
455                      fi
456                      export recurdata=$(($recurdata+2**$conta))
457                  done
458                 put_agenda
459               fi
460             
461          elif [ $tipo = "MONTHLY" ];then
462               cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | grep UNTIL
463               if [  $? -eq 0 ];then
464
465                 ############################# Mensal ################################### 
466     
467                  t=3
468                  final=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | cut -f1 -d\;`
469                  cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL
470                 if [  $? -eq 0 ];then
471                    let t=$t+2
472                    intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | cut -f1 -d\;`
473                 else
474                    let t=$t+1
475                    intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | cut -f1 -d\;`
476                 fi
477                 let t=$t+1
478                  diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | cut -f1 -d\;`
479                  anofin=`echo $final | cut -c1-4`
480                  mesfin=`echo $final | cut -c5-6`
481                  diafin=`echo $final | cut -c7-8`
482                  horafin=`echo $final | cut -c10-11`
483                  minfin=`echo $final | cut -c12-13`
484                  segfin=`echo $final | cut -c14-15`
485                  tipoum=`echo $tipo | tr 'A-Z' 'a-z'`
486                  export timestampfield02="$anofin-$mesfin-$diafin $horafim:$minfim:$segfim"
487                  export ds_endS=`date -d "$timestampfield02" +%s`
488                  echo $diames | grep [A-Z]
489                  if [  $? -eq 0 ];then
490                       tipop=M               
491                       recurtype=4
492                       export recurdata=0
493                       
494                  else
495                        tipop=M
496                        recurtype=3
497                        recurdata=0
498                   fi
499                   put_agenda
500                else
501                    cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | grep COUNT
502                    if [  $? -eq 0 ];then
503                      contagem=$(cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | cut -f1 -d\; )     
504                      cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL
505                       if [  $? -eq 0 ];then
506                          intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;`
507                          diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d=`
508                       else
509                          intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;`
510                          diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;`
511                       fi 
512                    else
513                      contagem=50;
514                        cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | grep INTERVAL
515                        if [  $? -eq 0 ];then
516                           intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;`
517                           diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d=`
518                        else
519                           intervalo=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | cut -f1 -d\;`
520                           diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;`
521                        fi
522                    fi
523                     #let anofim1=$anofim+4
524                     tipoum=`echo $tipo | tr 'A-Z' 'a-z'` 
525                     #export timestampfield02="$anofim1-$mesfim-$diafim $horafim:$minfim:$segfim"
526                     #export ds_endS=`date -d "$timestampfield02" +%s`
527                     somar_meses=$((2678400*$contagem))
528                     export ds_endS=$(($ds_start+$somar_meses))
529                     echo $diames | grep [A-Z]
530                   if [  $? -eq 0 ];then
531                       tipop=M
532                       recurtype=4
533                       recurdata=0;
534
535                  else
536                        tipop=M
537                        recurtype=3
538                        recurdata=0
539                   fi
540
541
542                      put_agenda
543                 
544               fi
545           elif [ $tipo = "YEARLY" ];then
546                cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | grep UNTIL
547              if [  $? -eq 0 ];then
548
549                 ################################# Anual #################################
550
551                  final=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | cut -f1 -d\;`
552                  anofin=`echo $final | cut -c1-4`
553                  mesfin=`echo $final | cut -c5-6`
554                  diafin=`echo $final | cut -c7-8`
555                  horafin=`echo $final | cut -c10-11`
556                  minfin=`echo $final | cut -c12-13`
557                  segfin=`echo $final | cut -c14-15`
558                  tipoum=`echo $tipo | tr 'A-Z' 'a-z'`
559                  export timestampfield02="$anofin-$mesfin-$diafin $horafim:$minfim:$segfim"
560                  export ds_endS=`date -d "$timestampfield02" +%s`
561                  cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL
562                      if [  $? -eq 0 ];then
563                         t=5
564                      else
565                         t=4
566                      fi                           
567                  cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | grep BYMONTH
568                  if [  $? -ne 0 ];then
569                      cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL
570                      if [  $? -eq 0 ];then
571                        cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE |  grep BYSETPOS
572                        if [  $? -eq 0 ];then
573                         diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f8 -d= | cut -f1 -d\;`
574                         mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d=`
575                         ordem=-1
576                        else
577                         diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d= | cut -f1 -d\;`
578                         mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f7 -d= | cut -f1 -d\;`
579                        fi
580                      else
581                         diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;`
582                         mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d= | cut -f1 -d\;`     
583                      fi
584                   fi
585                       
586                   tipop=M
587                   recurtype=5
588                   intervalo=1
589                   export recurdata=0
590                         
591                   put_agenda
592
593                   
594              else
595                   let anofim1=$anofim+4
596                   tipoum=`echo $tipo | tr 'A-Z' 'a-z'`
597                   export timestampfield02="$anofim1-$mesfim-$diafim $horafim:$minfim:$segfim"
598                   export ds_endS=`date -d "$timestampfield02" +%s`
599                   cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | grep COUNT
600                    if [  $? -eq 0 ];then
601                       cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL
602                         if [  $? -eq 0 ];then
603                            t=5
604                         else
605                            t=4
606                         fi
607                       cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | grep BYMONTH   
608                         if [  $? -eq 0 ];then
609                           cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL
610                           if [  $? -eq 0 ];then
611                              mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d= | cut -f1 -d\;`
612                              diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f7 -d=`
613                           else
614                              mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;`
615                              diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d= | cut -f1 -d\;`
616                           fi 
617                         else
618                           cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | grep INTERVAL
619                            if [  $? -eq 0 ];then
620                              diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d= | cut -f1 -d\;`
621                              mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f7 -d=`
622                            else
623                              diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;`
624                              mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d= | cut -f1 -d\;`
625                            fi
626                         fi   
627                   else
628                        cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | grep INTERVAL
629                         if [  $? -eq 0 ];then
630                            t=4
631                         else
632                            t=3
633                         fi
634                       cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f$t -d= | grep BYMONTH
635                       if [  $? -eq 0 ];then
636                         cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | grep INTERVAL
637                         if [  $? -eq 0 ];then
638                            mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;`
639                            diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d=`
640                         else
641                            mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;`
642                            diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;`
643                          fi
644                      else
645                         cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f3 -d= | grep INTERVAL
646                         if [  $? -eq 0 ];then
647                            diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;`
648                            mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f6 -d=`
649                         else
650                            diames=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f4 -d= | cut -f1 -d\;`
651                            mes=`cat $arqtrabalho | grep -A $difrenca_agenda BEGIN:VEVENT | grep -m1 ^RRULE | cut -f5 -d= | cut -f1 -d\;`
652                          fi
653                       fi
654                     fi   
655                     tipop=M
656                     recurtype=5
657                     intervalo=1
658                     export recurdata=0
659                    put_agenda
660               
661               fi
662             fi     
663           
664           
665       else 
666
667          ################## sem recorrencia ##########################################
668
669           export tipop=E
670           hostbanco="-@$EXP_HOST"
671           echo -e " INSERT INTO phpgw_cal ( cal_id, uid, owner, datetime, mdatetime, edatetime, priority,cal_type,is_public,title, location, description, reference ) VALUES ( DEFAULT,'$hostbanco','$UID_NUMBER','$ds_start','$mdatetime','$ds_end',  2,'$tipop',1,E'$titulo',E'$cidade',E'$Coment', 0);" > $exparqsql
672           psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass
673 
674           echo -e " select max(cal_id) from phpgw_cal where owner='$UID_NUMBER';" > $exparqsql
675           ID_ATUAL_CALL=`psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass`
676           ID_ATUAL_CALD=`echo $ID_ATUAL_CALL | cut -f3 -d" "`
677           ID_ATUAL_CAL=$ID_ATUAL_CALD       
678         
679           echo -e "INSERT INTO phpgw_cal_user ( cal_id, cal_login, cal_status, cal_type) VALUES ( '$ID_ATUAL_CAL','$UID_NUMBER','A','u');"  > $exparqsql
680           psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass
681           
682                   
683       fi   
684    done
685
686su cyrus -c "$reconstruct -C $conf_cyrus -f -r user/$UID_OX/Calendar"
687su cyrus -c "$squatter -C $conf_cyrus -s -r user/$UID_OX/Calendar"
688su cyrus  -c "$imap_cria -u $EXP_ADMIN -p $EXP_ADMIN_PASSWD -d -s -m $UID_OX/Calendar  $EXP_IMAP_HOST"
689#rm -Rdf ${IMAP_PATH}/q/user/$UID_OX/$calal                     
690rm -f ${TMPTEMP}.cont.tmp
691}   
692
693################################################################
694############## buscando usuario e extraindo dados ##############
695################################################################
696
697
698busca_usuarios() {
699 #Pesquisa do usuario no diretorio
700#ldapsearch -x -D "${MS_ATTR}=${MSADMUSR},${MS_LDAPADM_SUF}" -w "${MSADMPASS}" -b "${MS_LDAP_SUF}" -H "ldap://${MSHOSTLDAP}" mailNickname="${LOGINUSR}" cn sn cl l name st department extensionAttribute2 extensionAttribute4 homeMDB title description postalCode physicalDeliveryOfficeName telephoneNumber mail -LLL > ${TMPLDIF};
701if [ $? -ne 0 ]; then
702  echo -e "ERRO: O usuario $1 nao foi encontrado na base AD do MS Exchange!";
703  #exit 1;
704else
705
706#Extracao dos atributos necessarios
707# VARORGAO=`sed -e '/^physicalDeliveryOfficeName:/!d;s/physicalDeliveryOfficeName://g' $TMPLDIF`;
708# if [ -z "$VARORGAO" ];then
709#    VARORGAO=vazio
710# fi
711# VARCARGO=`sed -e '/^title:/!d;s/title://g' $TMPLDIF`;
712# if [ -z "$VARCARGO" ];then
713#    VARCARGO=vazio
714# fi
715# VARMAT=`sed -e '/^extensionAttribute2:/!d;s/extensionAttribute2://g' $TMPLDIF`;
716# if [ -z "$VARMAT" ];then
717#    VARMAT=vazio
718# fi
719
720
721
722 #VARSN=`sed -e '/^sn:/!d;s/sn:\ //g' $TMPLDIF`;
723 #if [ -z "$VARSN" ];then
724 #   VARSN=vazio
725 #fi
726 #VARSN=`echo ${VARSN:-vazio}`;
727 #NOME=`sed -e '/^cn:/!d;s/cn:\ //g' -e "s/$VARSN$//g" $TMPLDIF`;
728 #if [ -z "$NOME" ];then
729 #   NOME=vazio
730 #fi
731 #NOME=`echo ${NOME:-vazio}`;
732 #VARST=`sed -e '/^st:/!d;s/st:\ //g' $TMPLDIF`;
733 #if [ -z "$VARST" ];then
734 #   VARST=vazio
735 #fi
736 #VARST=`echo ${VARST:-vazio}`;
737 #VARDESCRIPTION=`sed -e '/^description:/!d;s/description://g' $TMPLDIF`;
738 #if [ -z "$VARDESCRIPTION" ];then
739 #   VARDESCRIPTION=vazio
740 #fi
741 #VARDESCRIPTION=`echo ${VARDESCRIPTION:-vazio}`;
742 #VARL=`sed -e '/^l:/!d;s/l:\ //g' $TMPLDIF`;
743 #if [ -z "$VARL" ];then
744 #   VARL=vazio
745 #fi
746 #VARL=`echo ${VARL:-vazio}`;
747 #VARTELNUMBER=`sed -e '/^telephoneNumber:/!d;s/telephoneNumber://g' $TMPLDIF`;
748 #if [ -z "$VARTELNUMBER" ];then
749 #   VARTELNUMBER=vazio
750 #fi
751 #VARRAMAL=`echo $VARTELNUMBER | cut -f2 -d"-"`;
752 #if [ -z "$VARRAMAL" ];then
753 #   VARRAMAL=vazio
754 #fi
755 #VARTELNUMBER=`echo ${VARTELNUMBER:-vazio}`;
756 #VARTITLE=`sed -e '/^title:/!d;s/title:\ //g' $TMPLDIF`;
757 #if [ -z "$VARTITLE" ];then
758 #   VARTITLE=vazio
759 #fi
760 #VARTITLE=`echo ${VARTITLE:-vazio}`;
761 #VARDEPARTAMENTO=`sed -e '/^department:/!d;s/department:\ //g' $TMPLDIF`;
762 #if [ -z "$VARDEPARTAMENTO" ];then
763 #   VARDEPARTAMENTO=vazio
764 #fi
765 #VARDEPARTAMENTO=`echo ${VARDEPARTAMENTO:-vazio}`;
766 #VARMAIL=`sed -e '/^mail:\ [a-zA-Z]/!d;s/mail:\ //g' $TMPLDIF`;
767 #if [ -z "$VARMAIL" ];then
768 #   VARMAIL=vazio
769 #fi
770 #VARMAIL=`echo ${VARMAIL:-vazio}`;
771 #VARFULLNAME=`sed -e '/^displayName:\ [a-zA-Z]/!d;s/displayName:\ //g' $TMPLDIF`;
772 #if [ -z "$VARFULLNAME" ];then
773 #   VARFULLNAME=vazio
774 #fi
775
776 export  UID_OX=$VARCPF
777 echo -e "\n\n===>Migrando o usuario ${VARCPF}\n\n";
778 
779 #paralelo
780 #ldapsearch -x -D "$EXP_LDAP_ADM" -w "$EXP_LDAP_ADM_PASS" -b "$EXP_LDAP_SUF" -h $EXP_LDAP_HOST uid=$VARCPF gidNumber uidNumber  userPassword description -LLL d=$VARCPF > /tmp/UID.txt
781
782 UIDTEMP="${TMPTEMP}.uid"
783 ldapsearch -x -D "$EXP_LDAP_ADM" -w $EXP_LDAP_ADM_PASS -b "$EXP_LDAP_SUF" -h $EXP_LDAP_HOST uid=$VARCPF gidNumber uidNumber  userPassword description -LLL  > $UIDTEMP
784 if [ $? -eq 1 ];then
785    echo -e "ERRO: O usuario $1 nao foi encontrado na base RHDS do Expresso!";
786    exit 1;
787 else
788   export DESCRIPTION=$(sed -e '/^description:/!d;s/description:\ //g' $UIDTEMP)
789   export UID_NUMBER=$(sed -e '/^uidNumber:/!d;s/uidNumber:\ //g' $UIDTEMP)
790   export GID_NUMBER=$(sed -e '/^gidNumber:/!d;s/gidNumber:\ //g' $UIDTEMP)
791   DNN=$(sed -e '/^dn:/!d;s/dn:\ //g' $UIDTEMP)
792   explinn=$(cat $UIDTEMP | grep  -n -e  "^dn" | cut -d: -f1)
793   let explinn=$explinn+1
794   DNB=$(sed -n ${explinn}p $UIDTEMP | grep -e "^ " | sed -e 's/^ //g')
795   export DN="${DNN}${DNB}"   
796   SENHAA=$(sed -e '/^userPassword:/!d;s/userPassword::\ //g' $UIDTEMP)
797   explin=$(cat $UIDTEMP | grep  -n -e  "^userPassword" | cut -d: -f1)
798   let explin=$explin+1
799   SENHAB=$(sed -n ${explin}p $UIDTEMP | grep -e "^ " | sed -e 's/^ //g')
800   SENHA="${SENHAA}${SENHAB}"   
801   SENHAEXP=`echo  $SENHA | openssl enc -base64 -d`
802   echo $SENHA 
803   rm -f $UIDTEMP
804 fi   
805 adicionar_usuario
806 if [ $? -eq 0 ]; then
807    echo " ==>Enviando mensagem de migracao para o usuario";
808    #echo -e "Sua conta do MS Exchange foi migrada para o OpenXchange!!!" | mail $LOGINUSR@$MSDOMAIN;
809    #if [ $? -ne 0 ]; then
810    #   echo -e " Falha no envio da mensagem\n";
811    #else
812    SENHAP=`slappasswd -h {SSHA} -s $SENHAPADRAO`   
813    echo -e "dn: $DN\nchangetype: modify\nreplace: userPassword\nuserPassword: $SENHAP\n" | ldapmodify -x -D "$EXP_LDAP_ADM" -w $EXP_LDAP_ADM_PASS -h $EXP_LDAP_HOST;
814    sleep 5;
815
816#ALTERAR a variavel SENHAPADRAO_UM para SENHAPADRAO no imapsync -> alterado para testes de migracao susep
817#SENHAPADRAO_UM=teste
818
819     imapsync  --host1  $MSHOST  --user1 $LOGINUSR --authmech1 LOGIN  --password1 $SENHAPADRAO --host2 $EXP_IMAP_HOST  --user2 $UID_OX --authmech2 LOGIN --password2 $SENHAPADRAO  --regextrans2 's/\)/-/' --regextrans2 's/^INBOX\/Deleted\ Items/INBOX\/Trash/' --regextrans2 's/^INBOX\/Mensagens\ exclu&AO0-das/INBOX\/Trash/' --regextrans2 's/^INBOX\/Calend&AOE-rio/INBOX\/Calendar/' --regextrans2 's/^INBOX\/INBOX/INBOX/' --regextrans2 's/^INBOX\/Sent\ Items/INBOX\/Sent/' --regextrans2 's/^INBOX\/Rascunhos/INBOX\/Drafts/' --regextrans2 's/^INBOX\/Mensagens\ enviadas/INBOX\/Sent/' --exclude 'Contacts' --exclude 'Contatos' --exclude 'Di&AOE-rio' --exclude 'Journal' --exclude 'Notes' --exclude 'Anota&AOcA9Q-es' --exclude 'Outbox' --exclude 'Caixa\ de\ sa&AO0-da' --exclude 'Spam\ Mail' --exclude 'Tarefas' --exclude 'Tasks' --exclude 'Public\ Folders' --exclude 'Pastas\ P&APo-blicas' --exclude 'Lixo\ eletr&APQ-nico' --exclude 'Problemas\ de\ Sincroniza&AOcA4w-o'  --subscribe
820
821     #imapsync --host1 $MSHOST  --user1 $LOGINUSR --authmech1 LOGIN  --password1 $SENHAPADRAO --host2 $EXP_IMAP_HOST  --user2 $UID_OX --authmech2 LOGIN --password2 $SENHAPADRAO  --regextrans2 's/^INBOX\/Mensagens\ excluídas/INBOX\/Trash/' --regextrans2 's/^INBOX\/Mensagens\ enviadas/INBOX\/Sent/' --regextrans2 's/^INBOX\/Rascunhos/INBOX\/Drafts/' --regextrans2 's/^INBOX\/INBOX/INBOX/' --exclude 'Contacts' --exclude 'Journal' --exclude 'Notes' --exclude 'Outbox' --exclude 'Spam\ Mail' --exclude 'Tasks' --exclude 'Public\ Folders' --exclude 'Lixo\ eletr&APQ-nico' --exclude 'Problemas\ de\ Sincroniza&AOcA4w-o' --subscribe
822         #sleep 2;
823         #Retorno da senha do Rhds para o valor antigo
824         #echo -e "dn: $DN\nchangetype: modify\nreplace: userPassword\nuserPassword: $SENHAEXP\n" | ldapmodify -x -D "$EXP_LDAP_ADM" -w $EXP_LDAP_ADM_PASS -h $EXP_LDAP_HOST;
825
826
827       migrar_agenda
828        if [ $? -eq 0 ]; then
829           echo -e " \n\n  ##### agendamentos do usuario $NOME migrados com sucesso ######## \n\n";
830        else
831          echo -e " \n\n  ##### ERRO ao migrar agendamentos do $NOME ####### \n\n";
832        fi
833 
834        migrar_contatos
835         if [ $? -eq 0 ]; then
836            echo -e " \n\n  ##### Contatos do usuario $NOME migrados com sucesso ######## \n\n";
837         else
838             echo -e " \n\n  ##### ERRO ao migrar contatos ####### \n\n";
839         fi
840
841
842         su cyrus -c "$reconstruct -C $conf_cyrus -f -r user/$UID_OX"
843         su cyrus -c "$squatter -C $conf_cyrus -s -r user/$UID_OX"
844         
845       
846        #FIRSTCHAR=$(echo $UID_OX | grep -o "^." )
847        #if [ $(echo $UID_OX | grep "^[0-9]" ) ];  then
848        #           rm -f /usr/lib/imap/quota/q/user.$UID_OX
849        #else
850        #           rm -f /usr/lib/imap/quota/${UID_OX:0:1}/user.$UID_OX
851        #fi
852 
853         su cyrus  -c "$imap_cria -u $EXP_ADMIN -p $EXP_ADMIN_PASSWD -s -m $UID_OX -q $PER $EXP_IMAP_HOST"
854         su cyrus -c "$quota -C $conf_cyrus -f user/$UID_OX"
855
856         su cyrus -c "$reconstruct -C $conf_cyrus -r user/$UID_OX"
857         su cyrus -c "$squatter -C $conf_cyrus -s -r user/$UID_OX"
858 
859         
860
861
862
863 else
864  echo "********************************************************************************"
865   echo "ERRO: Nao foi possivel adicionar o usuario ${LOGINUSR} no Expresso!" | tee -a $ARQUIVODELOG;
866   echo  "********************************************************************************"
867 fi
868fi;
869
870}
871
872################################################################################
873################### Adicionando Usuario ########################################
874################################################################################
875
876
877function adicionar_usuario() {
878 #Adicao do usuario no EXP
879 #${ADDLOGINUSR_CMD} --username="${VARCPF}" --passwd="${PASS}" --name="${NOME}" --sname="${VARSN}" --maildomain="${EXP_DOMINIO}" --EXP_timezone='America/Sao_Paulo' --email="${VARMAIL}" --estado="${VARST}" --cidade="${VARL}" --ramal="${VARRAMAL}" --telefone="${VARTELNUMBER}" --perfil="${VARPERFIL}"  --cargo="${VARCARGO}" --observacoes="${VARDESCRIPTION}" --orgao="${VARORGAO}" --matricula="${VARMAT}" --lotacao="${VARDEPARTAMENTO}"
880 sleep 1;
881 #$ADDLOGINUSRTOGROUP_CMD --user="$VARCPF" --group=users;
882 mail1=`echo $mail | cut -f1 -d@`
883 mail2="$LOGINUSR@$EXP_DOMINIO"
884 mail3="$mail1@$EXP_DOMINIO"
885 ldapsearch -x -D "$EXP_LDAP_ADM" uid=${VARCPF} -b "$EXP_LDAP_SUF" uid -LLL -w $EXP_LDAP_ADM_PASS -h $EXP_LDAP_HOST
886 if [ $? -eq 0 ]; then
887    echo -e "dn: $DN\nchangetype: modify\nadd: mailAlternateAddress\nmailAlternateAddress: $mail3\n-\nadd: phpgwAccountExpires\nphpgwAccountExpires: -1\n-\nadd: phpgwAccountStatus\nphpgwAccountStatus: A\n-\nadd: phpgwAccountType\nphpgwAccountType: u\n-\nadd: accountStatus\naccountStatus: active\n-\nadd: objectclass\nobjectclass: phpgwaccount\n" |  ldapmodify -x -D "$EXP_LDAP_ADM" -w $EXP_LDAP_ADM_PASS -h $EXP_LDAP_HOST
888    echo -e "dn: $grupo\nchangetype: modify\nadd: memberUid\nmemberUid: ${VARCPF}" |  ldapmodify -x -D "$EXP_LDAP_ADM" -w $EXP_LDAP_ADM_PASS -h $EXP_LDAP_HOST
889   ## colocar no ldapmodify de cima ' -\nadd: objectclass\nobjectclass: phpgwaccount\n '
890   echo $EXP_PG_PASS > ${TMPTEMP}.db.pass;
891   adicionar_banco
892   adicionar_imap       
893 else
894 false;
895fi;
896}
897
898
899####################################################
900################# Contatos #########################
901####################################################
902
903
904migrar_contatos()
905{               
906#Busca o caminho de acesso ao WebAccess
907 PREFIXO="${MSPROT}://${MSHOST}/exchange/${LOGCONT}"
908
909# Checa se a interface do WebAccess esta em Pt ou En
910 lynx --accept_all_cookies -dump -auth=${USRROOT}:"${USRROOTPASS}" -nolist "$PREFIXO?Cmd=navbar" | grep -i contatos > /dev/null
911if [ $? -eq 0 ]; then                                                                                                         
912  strContact="Contatos"                                                                                                       
913else                                                                                                                           
914  strContact="Contacts"                                                                                                       
915fi                                                                                                                             
916
917# Arquivo base de armazenamento temporario das informacoes do contato do usuario CAMPOS="Job_title#oxuserposition
918# Company#o Department#ou Business_Phone#TelephoneNumber Home_Phone#HomePhone Mobile_Phone#Mobile E-mail#mail   
919# Business_Address# Assistant_Phone#OXUserTeleAssistant Business_Fax#FacsimileTelephoneNumber                   
920# Callback_Phone#oxusertelecallback Company_Phone#OXUserTeleCompany Home_Phone_2#OXUserTeleHome2                 
921# Home_Fax#OtherFacsimiletelephoneNumber ISDN#internationaliSDNNumber Other_Phone#OXUserTeleOther               
922# Other_fax#OXUserTeleFax2 Car_Phone#pager E-mail_2#OXUserEmail2 E-mail_3#OXUserEmail3 Home_Address# Other_Address#
923# Web_Page#url"                                                                                                   
924CAMPOS="                                                                                                           
925 Business_Phone#TelephoneNumber                                                                                   
926 Home_Phone#HomePhone                                                                                             
927 Mobile_Phone#Mobile                                                                                               
928 E-mail#mail                                                                                                       
929 Business_Fax#FacsimileTelephoneNumber                                                                             
930 E-mail_2#OXUserEmail2"                                                                                           
931cont=0;                                                                                                           
932BirthDate=null                                                                                                     
933ALIAS=null                                                                                                         
934Notes=null                                                                                                         
935#for k in $( seq 1 `lynx --accept_all_cookies -dump -auth=${USRROOT}:"${USRROOTPASS}" -nolist "${PREFIXO}/${strContact}/?Cmd=contents&Page=1&View=Detailed%20Address%20Cards" | sed '/Next Page/!d' | sed 's/.*\([0-9]\)/\1/g;s/\([0-9]*\).*/\1/g'` ); do                                                                                                                                                                                                                                 
936#for k in $( seq 1 `lynx --accept_all_cookies -dump -auth=${USRROOT}:"${USRROOTPASS}" -nolist "${PREFIXO}/${strContact}/?Cmd=contents&Page=1&View=Detailed%20Address%20Cards" | sed '/Next Page/!d' | awk -F ' ' '{print $5}'`); do           
937for k in $( seq 1 `lynx --accept_all_cookies -dump -auth=${USRROOT}:"${USRROOTPASS}" -nolist "${PREFIXO}/${strContact}/?Cmd=contents&Page=1&View=Detailed%20Address%20Cards" | sed '/Next Page/!d' | tr -d [:alpha:],[:blank:],[=_=],[=:=],[=-=] | iconv -f LATIN1 -t UTF-8 | sed 's/çã//g'`); do           
938   lynx --accept_all_cookies -dump -auth=${USRROOT}:"${USRROOTPASS}" -nolist "${PREFIXO}/${strContact}/?Cmd=contents&Page=$k&View=Detailed%20Address%20Cards" > ${ARQUIVO}                                                                   
939
940   iconv -f LATIN1 -t LATIN1 $ARQUIVO > ${TMPTEMP}.tst1
941   mv ${TMPTEMP}.tst1 $ARQUIVO                       
942   echo $EXP_PG_PASS > /tmp/EXPsenhadb.txt;           
943   for i in $(seq 1 `cat ${ARQUIVO} | grep '\[_\]' | wc -l`); do
944     let cont=${cont}+1                                         
945     echo "----CONTATO $cont----";                             
946     echo "Migrando Contato"                                   
947     cat ${ARQUIVO} | grep -n  '\[_\]' | cut -f1 -d: > ${TMPTEMP}.linhas.tmp
948     cat ${ARQUIVO} | wc -l >> ${TMPTEMP}.linhas.tmp                       
949     Lent=`sed -n ${i}p ${TMPTEMP}.linhas.tmp`                             
950     let i=${i}+1                                                           
951     Lfim=`sed -n ${i}p ${TMPTEMP}.linhas.tmp`                             
952     let i=${i}-1                                                           
953     let j=${Lfim}-${Lent} 
954     more +$Lent  ${ARQUIVO} | grep -m 1 '\[_\]' | sed -e 's/\[_\]//g' | grep -e "(" > /dev/null
955     if [ $? == 0 ];then
956         NameOrdered=$(more +$Lent  ${ARQUIVO} | grep -m 1 '\[_\]' | sed -e 's/\[_\]//g' | sed -e 's/  //g' |  tr -d [=\'=])
957         GivenName=""   
958         FamilyName=""
959     else                                           
960         nome=`more +$Lent  ${ARQUIVO} | grep -m 1 '\[_\]' | sed -e 's/\[_\]//g' | awk -F',' '{print $2}' |  sed -e 's/ //g' |  tr -d [=\'=] `
961           if [ -z "$nome" ];then                                                                                               
962              nome=""                                                                                                           
963           fi                                                                                                                   
964         Nultimo=`more +$Lent  ${ARQUIVO} | grep -m 1 '\[_\]' | sed -e 's/\[_\]//g' | awk -F',' '{print $1}' | sed -e 's/     //g' |  tr -d [=\'=] `
965            if [ -z "$Nultimo" ];then                                                                                                 
966               Nultimo=""                                                                                                               
967            fi                                                                                                                         
968         GivenName=$nome                                                                                                           
969         FamilyName=$Nultimo                                                                                                       
970           if [ ! -z "$nome" ];then                                                                                                   
971              NameOrdered="$nome $Nultimo"                                                                                           
972            else                                                                                                                       
973              NameOrdered="$Nultimo"                                                                                                 
974          fi 
975     fi                                                                                                                         
976     echo -e " select max(id_contact) from phpgw_cc_contact;" > $exparqsql                                                     
977      ID_ATUAL_COT=`psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass`                       
978      ID_ATUAL_COTT=`echo $ID_ATUAL_COT | cut -f3 -d" "`                                                                       
979      let PROX_ID=$ID_ATUAL_COTT+1;                                                                                             
980      echo -e " INSERT INTO phpgw_cc_contact ( id_contact, id_owner, id_status, alias, given_names,family_names,names_ordered, birthdate, notes, is_global ) VALUES ( '$PROX_ID', '$UID_NUMBER', 1,E'$ALIAS',E'$GivenName',E'$FamilyName',E'$NameOrdered', $BirthDate,E'$Notes', 'FALSE' );" > $exparqsql                                                                                                                                                                             
981      psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass                                                                                                                                                   
982     for v in $CAMPOS;do                                                                                                                                                                                                                     
983            CAMPOMS=`echo ${v} | cut -f1 -d#`                                                                                                                                                                                               
984            CAMPOOX=`echo ${v} | cut -f2 -d#`                                                                                                                                                                                               
985            CAMPOMS2=`echo $CAMPOMS | tr -s '_' ' '`                                                                                                                                                                                         
986            valor=$(more +${Lent} ${ARQUIVO}  | grep  -A $j  -m 1 '\[_\]' | grep -m 1 "$CAMPOMS2" | sed -e 's/   //g' | awk -F "$CAMPOMS2" '{print $2}' | sed 's/^ //g' | tr -d [=\'=])                                                                                   
987            if [ ! -z "$valor" ];then                                                                                                                                                                                                       
988                if [ $CAMPOOX = "TelephoneNumber" ];then                                                                                                                                                                                     
989                    echo $valor | grep "[a-zA-Z]" > /dev/null
990                    if [ $? == 1 ];then
991                       Comercial=$valor   
992                    else
993                       comercial="";
994                    fi                                                                                                                                                                                                   
995                elif [ $CAMPOOX = "HomePhone" ];then                                                                                                                                                                                         
996                    echo $valor | grep "[a-zA-Z]"  > /dev/null
997                    if [ $? == 1 ];then
998                      Residencial=$valor                                                                                                                                                                                                       
999                    else
1000                      Residencial="";                                                                                                                                                                                                     
1001                    fi
1002                elif [ $CAMPOOX = "Mobile" ];then                                                                                                                                                                                           
1003                    echo $valor | grep "[a-zA-Z]"  > /dev/null
1004                    if [ $? == 1 ];then
1005                    Celular=$valor                                                                                                                                                                                                           
1006                    else
1007                    Celular="";                                                                                                                                                                                                           
1008                    fi
1009                elif [ $CAMPOOX = "mail" ];then                                                                                                                                                                                             
1010                   echo $valor | grep "[a-zA-Z]"  > /dev/null
1011                    if [ $? == 0 ];then
1012                        Principal=$valor                                                                                                                                                                                                       
1013                    else
1014                        Principal=""                                                                                                                                                                                                       
1015                    fi
1016                elif [ $CAMPOOX = "FacsimileTelephoneNumber" ];then                                                                                                                                                                         
1017                     echo $valor | grep "[a-zA-Z]"  > /dev/null
1018                    if [ $? == 1 ];then
1019                       Fax=$valor                                                                                                                                                                                                             
1020                    else
1021                       Fax="";                                                                                                                                                                                                             
1022                    fi
1023                elif [ $CAMPOOX = "OXUserEmail2" ];then                                                                                                                                                                                     
1024                    echo $valor | grep "[a-zA-Z]"  > /dev/null
1025                    if [ $? == 0 ];then
1026                       Alternativo=$valor                                                                                                                                                                                                     
1027                    else
1028                      Alternativo="";                                                                                                                                                                                                     
1029                    fi
1030                                                                                                                                                                                                                                             
1031                fi                                                                                                                                                                                                                           
1032             else                                                                                                                                                                                                                           
1033                if [ $CAMPOOX = "TelephoneNumber" ];then                                                                                                                                                                                     
1034                    Comercial=""                                                                                                                                                                                                             
1035                elif [ $CAMPOOX = "HomePhone" ];then                                                                                                                                                                                         
1036                    Residencial=""                                                                                                                                                                                                           
1037                elif [ $CAMPOOX = "Mobile" ];then                                                                                                                                                                                           
1038                    Celular=""                                                                                                                                                                                                               
1039                elif [ $CAMPOOX = "mail" ];then                                                                                                                                                                                             
1040                     Principal=""                                                                                                                                                                                                           
1041                elif [ $CAMPOOX = "FacsimileTelephoneNumber" ];then                                                                                                                                                                         
1042                     Fax=""                                                                                                                                                                                                                 
1043                elif [ $CAMPOOX = "OXUserEmail2" ];then                                                                                                                                                                                     
1044                     Alternativo=""                                                                                                                                                                                                         
1045                fi                                                                                                                                                                                                                           
1046            fi                                                                                                                                                                                                                               
1047                                                                                                                                                                                                                                             
1048                                                                                                                                                                                                                                             
1049                                                                                                                                                                                                                                             
1050     done                                                                                                                                                                                                                                   
1051     tipo1=0                                                                                                                                                                                                                                 
1052     tipo2=0                                                                                                                                                                                                                                 
1053                                                                                                                                                                                                                                             
1054        Principal=$Principal                                                                                                                                                                                                                 
1055      if [ -z "$Principal" ];then                                                                                                                                                                                                           
1056        Principal=""                                                                                                                                                                                                                         
1057      else                                                                                                                                                                                                                                   
1058        echo -e " select max(id_connection) from phpgw_cc_connections;" > $exparqsql                                                                                                                                                         
1059        ID_ATUAL_CON=`psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass`                                                                                                                                   
1060        ID_ATUAL_CONN=`echo $ID_ATUAL_CON | cut -f3 -d" "`                                                                                                                                                                                   
1061        let PROXC_ID=$ID_ATUAL_CONN+1;                                                                                                                                                                                                       
1062
1063        echo -e " INSERT INTO phpgw_cc_connections ( id_connection, connection_name, connection_value, connection_is_default )   VALUES ( '$PROXC_ID', 'Principal', '$Principal', 'FALSE');" > $exparqsql
1064        psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass                                                                                                             
1065        echo -e " INSERT INTO phpgw_cc_contact_conns ( id_contact, id_connection, id_typeof_contact_connection) VALUES  ( '$PROX_ID', '$PROXC_ID', 1);" > $exparqsql                                     
1066        psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass                                                                                                             
1067        let tipo1=$tipo1+1                                                                                                                                                                               
1068      fi                                                                                                                                                                                                 
1069
1070      Alternativo=$Alternativo
1071      if [ -z "$Alternativo" ];then
1072        Alternativo=""             
1073      else                         
1074        echo -e " select max(id_connection) from phpgw_cc_connections;" > $exparqsql
1075        ID_ATUAL_CON=`psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass`
1076        ID_ATUAL_CONN=`echo $ID_ATUAL_CON | cut -f3 -d" "`                                               
1077        let PROXC_ID=$ID_ATUAL_CONN+1;                                                                   
1078
1079        echo -e " INSERT INTO phpgw_cc_connections ( id_connection, connection_name , connection_value,connection_is_default )  VALUES ( '$PROXC_ID', 'Alternativo', '$Alternativo', 'FALSE');" > $exparqsql
1080        psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass                                                                                                                 
1081        echo -e " INSERT INTO phpgw_cc_contact_conns ( id_contact, id_connection, id_typeof_contact_connection ) VALUES  ( '$PROX_ID', '$PROXC_ID', 1);" > $exparqsql                                       
1082        psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass                                                                                                                 
1083        let tipo1=$tipo1+2                                                                                                                                                                                 
1084      fi                                                                                                                                                                                                   
1085        Comercial=$Comercial                                                                                                                                                                               
1086      if [ -z "$Comercial" ];then                                                                                                                                                                           
1087        Comercial=""                                                                                                                                                                                       
1088      else                                                                                                                                                                                                 
1089        echo -e " select max(id_connection) from phpgw_cc_connections;" > $exparqsql                                                                                                                       
1090        ID_ATUAL_CON=`psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass`                                                                                                 
1091        ID_ATUAL_CONN=`echo $ID_ATUAL_CON | cut -f3 -d" "`                                                                                                                                                 
1092        let PROXC_ID=$ID_ATUAL_CONN+1;                                                                                                                                                                     
1093
1094        echo -e " INSERT INTO phpgw_cc_connections ( id_connection, connection_name, connection_value,connection_is_default )  VALUES ( '$PROXC_ID', 'Comercial', '$Comercial', 'FALSE');" > $exparqsql
1095        psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass                                                                                                           
1096        echo -e " INSERT INTO phpgw_cc_contact_conns ( id_contact, id_connection, id_typeof_contact_connection) VALUES ( '$PROX_ID', '$PROXC_ID', 2);" > $exparqsql                                   
1097        psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass                                                                                                           
1098        let tipo2=$tipo2+2                                                                                                                                                                             
1099      fi                                                                                                                                                                                               
1100
1101      Residencial=$Residencial
1102      if [ -z "$Residencial" ];then
1103        Residencial=""             
1104      else                         
1105        echo -e " select max(id_connection) from phpgw_cc_connections;" > $exparqsql
1106        ID_ATUAL_CON=`psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass`
1107        ID_ATUAL_CONN=`echo $ID_ATUAL_CON | cut -f3 -d" "`                                               
1108        let PROXC_ID=$ID_ATUAL_CONN+1;                                                                   
1109
1110        echo -e " INSERT INTO phpgw_cc_connections ( id_connection, connection_name, connection_value,  connection_is_default )  VALUES ( '$PROXC_ID', 'Residencial', '$Residencial', 'FALSE');" > $exparqsql
1111        psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass                                                                                                                 
1112        echo -e " INSERT INTO phpgw_cc_contact_conns ( id_contact, id_connection, id_typeof_contact_connection) VALUES ( '$PROX_ID', '$PROXC_ID', 2);" > $exparqsql                                         
1113        psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass                                                                                                                 
1114        let tipo2=$tipo2+4                                                                                                                                                                                   
1115      fi                                                                                                                                                                                                     
1116       Celular=$Celular                                                                                                                                                                                     
1117      if [ -z "$Celular" ];then                                                                                                                                                                             
1118        Celular=""                                                                                                                                                                                           
1119      else                                                                                                                                                                                                   
1120        echo -e " select max(id_connection) from phpgw_cc_connections;" > $exparqsql                                                                                                                         
1121        ID_ATUAL_CON=`psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass`                                                                                                   
1122        ID_ATUAL_CONN=`echo $ID_ATUAL_CON | cut -f3 -d" "`                                                                                                                                                   
1123        let PROXC_ID=$ID_ATUAL_CONN+1;                                                                                                                                                                       
1124
1125        echo -e " INSERT INTO phpgw_cc_connections ( id_connection, connection_name, connection_value,connection_is_default )  VALUES ( '$PROXC_ID', 'Celular', '$Celular', 'FALSE');" > $exparqsql
1126        psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass                                                                                                       
1127        echo -e " INSERT INTO phpgw_cc_contact_conns ( id_contact, id_connection, id_typeof_contact_connection) VALUES  ( '$PROX_ID', '$PROXC_ID', 2);" > $exparqsql                               
1128        psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass                                                                                                       
1129        let tipo2=$tipo2+8                                                                                                                                                                         
1130      fi                                                                                                                                                                                           
1131
1132      Fax=$Fax
1133      if [ -z "$Fax" ];then
1134        Fax=""             
1135      else                 
1136        echo -e " select max(id_connection) from phpgw_cc_connections;" > $exparqsql
1137        ID_ATUAL_CON=`psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass`
1138        ID_ATUAL_CONN=`echo $ID_ATUAL_CON | cut -f3 -d" "`                                               
1139        let PROXC_ID=$ID_ATUAL_CONN+1;                                                                   
1140
1141        echo -e " INSERT INTO phpgw_cc_connections ( id_connection, connection_name, connection_value,connection_is_default )  VALUES ( '$PROXC_ID', 'Fax', '$Fax', 'FALSE');" > $exparqsql
1142        psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass                                                                                               
1143        let tipo2=$tipo2+16                                                                                                                                                               
1144      fi                                                                                                                                                                                   
1145      tipo=`expr 1 \& $tipo1`                                                                                                                                                             
1146      if [ $tipo -eq 1 ];then                                                                                                                                                             
1147         echo -e " UPDATE phpgw_cc_connections set connection_is_default='TRUE' where connection_name='Principal' and id_connection=(select min(id_connection) from phpgw_cc_contact_conns where id_contact='$PROX_ID' and id_typeof_contact_connection='1');"   > $exparqsql                                                                                                                                                                                                             
1148         psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass                                                                                                                                                 
1149      else                                                                                                                                                                                                                                   
1150      tipo=`expr 2 \& $tipo1`                                                                                                                                                                                                               
1151        if [ $tipo -eq 2 ];then
1152         echo -e " UPDATE phpgw_cc_connections set connection_is_default='TRUE' where connection_name='Alternativo' and id_connection=(select min(id_connection) from phpgw_cc_contact_conns where id_contact='$PROX_ID' and id_typeof_contact_connection='2');"  > $exparqsql
1153         psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass
1154        fi
1155      fi
1156      tipoDois=`expr 2 \& $tipo2`
1157      if [ $tipoDois -eq 2 ];then
1158         echo -e " UPDATE phpgw_cc_connections set connection_is_default='TRUE' where connection_name='Comercial' and  id_connection=(select min(id_connection) from phpgw_cc_contact_conns where id_contact='$PROX_ID' and id_typeof_contact_connection='2' );" > $exparqsql
1159         psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass
1160      else
1161        tipoDois=`expr 4 \& $tipo2`
1162        if [ $tipoDois -eq 4 ];then
1163          echo -e " UPDATE phpgw_cc_connections set connection_is_default='TRUE' where connection_name='Residencial' and  id_connection=(select min(id_connection) from  phpgw_cc_contact_conns where id_contact='$PROX_ID' and id_typeof_contact_connection='2');"  > $exparqsql
1164          psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass
1165        else
1166          tipoDois=`expr 8 \& $tipo2`
1167          if [ $tipoDois -eq 8 ];then
1168             echo -e " UPDATE phpgw_cc_connections set connection_is_default='TRUE' where connection_name='Celular' and id_connection=(select min(id_connection) from phpgw_cc_contact_conns where id_contact='$PROX_ID' and id_typeof_contact_connection='2');"  > $exparqsql
1169             psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass
1170          else
1171            tipoDois=`expr 16 \& $tipo2`
1172            if [ $tipoDois -eq 16 ];then
1173               echo -e "UPDATE phpgw_cc_connections set connection_is_default='TRUE' where connection_name='Fax'and id_connection=(select min(id_connection) from phpgw_cc_contact_conns where id_contact='$PROX_ID' and id_typeof_contact_connection='2'); "  > $exparqsql
1174               psql -U $EXP_PG_USER $EXP_PG_DB -h $EXP_PG_HOST  -f $exparqsql < ${TMPTEMP}.db.pass
1175            fi
1176          fi
1177        fi
1178      fi
1179
1180
1181    done;
1182done;
1183for i in /tmp/contatos*; do rm -f $i; done
1184if [ $(echo $UID_OX | grep "^[0-9]" ) ];  then
1185                   rm -Rdf ${IMAP_PATH}/q/user/$UID_OX/.$strContact
1186 
1187else
1188               rm -Rdf ${IMAP_PATH}/${UID_OX:0:1}/user/$UID_OX/.$strContact
1189fi
1190
1191rm -f ${ARQUIVO}-${cont}.ldif
1192rm -f $exparqsql ${TMPTEMP}.db.pass
1193}
1194
1195
1196#################################################################
1197################## Limpeza ######################################
1198#################################################################
1199
1200usuarios