Changeset 180


Ignore:
Timestamp:
02/26/08 17:04:07 (16 years ago)
Author:
niltonneto
Message:
 
Location:
trunk/expressoAdmin1_2
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoAdmin1_2/inc/class.db_functions.inc.php

    r64 r180  
    672672                return $result; 
    673673        } 
     674         
     675        function manager_lid_exist($manager_lid) 
     676        { 
     677                $query = "SELECT manager_lid FROM phpgw_expressoadmin WHERE manager_lid = '" . $manager_lid . "'"; 
     678                $this->db->query($query); 
     679                while($this->db->next_record()) 
     680                        $result[] = $this->db->row(); 
     681                if (count($result) > 0) 
     682                        return true; 
     683                else 
     684                        return false; 
     685        } 
     686         
     687        function create_manager($params, $manager_acl) 
     688        { 
     689                //Escrevre no Banco a ACL do gerente 
     690                $sql = "INSERT INTO phpgw_expressoadmin (manager_lid, context, acl) " 
     691                . "VALUES('" . $params['ea_select_manager'] . "','" . $params['context'] . "','" . $manager_acl . "')"; 
     692                $this->db->query($sql); 
     693                         
     694                //Escrevre no Banco as aplicações que o gerente tem direito de disponibilizar aos seus usuarios. 
     695                if (count($_POST['applications_list'])) 
     696                { 
     697                        foreach($_POST['applications_list'] as $app=>$value) 
     698                        { 
     699                                $sql = "INSERT INTO phpgw_expressoadmin_apps (manager_lid, context, app) " 
     700                                . "VALUES('" . $_POST['manager_lid'] . "','" . $_POST['context'] . "','" . $app . "')"; 
     701                                $this->db->query($sql); 
     702                        } 
     703                } 
     704                 
     705                return; 
     706        } 
     707         
     708        function save_manager($params, $manager_acl) 
     709        { 
     710                $params['manager_lid'] = $params['hidden_manager_lid']; 
     711                 
     712                //Executa update na tabela para atualizar ACL 
     713                $sql = "UPDATE phpgw_expressoadmin SET context = '" . $params['context'] . "',acl = '" . $manager_acl 
     714                . "' WHERE manager_lid = '" . $params['manager_lid'] ."'"; 
     715                $this->db->query($sql); 
     716                         
     717                //Deleta as aplicações e adiciona as novas. 
     718                //Deleta 
     719                $sql = "DELETE FROM phpgw_expressoadmin_apps WHERE manager_lid = '" . $params['manager_lid'] . "'"; 
     720                $this->db->query($sql); 
     721                                         
     722                // Adiciona 
     723                if (count($params['applications_list'])) 
     724                { 
     725                        foreach($params['applications_list'] as $app=>$value) 
     726                        { 
     727                                $sql = "INSERT INTO phpgw_expressoadmin_apps (manager_lid, context, app) " 
     728                                . "VALUES('" . $params['manager_lid'] . "','" . $params['context'] . "','" . $app . "')"; 
     729                                $this->db->query($sql); 
     730                        } 
     731                } 
     732                         
     733                return; 
     734        } 
     735         
    674736} 
    675737?> 
  • trunk/expressoAdmin1_2/inc/class.ldap_functions.inc.php

    r81 r180  
    433433                $denied_uidnumber = $params['denied_uidnumber']; 
    434434                 
    435                 $justthese = array("cn", "uidNumber"); 
     435                $justthese = array("cn", "uidNumber", "mail"); 
     436                 
    436437                $users_filter="(phpgwAccountType=u)"; 
    437438                $lists_filter = $denied_uidnumber == '' ? "(phpgwAccountType=l)" : "(&(phpgwAccountType=l)(!(uidnumber=$denied_uidnumber)))"; 
     
    440441                $lists = Array();                
    441442 
     443                /* folling referral connection */ 
     444                $ldap_conn_following_ref = ldap_connect($_SESSION['phpgw_info']['expresso']['cc_ldap_server']['host']); 
     445                if ($ldap_conn_following_ref) 
     446                { 
     447                        ldap_set_option($ldap_conn_following_ref, LDAP_OPT_PROTOCOL_VERSION, 3); 
     448                        ldap_set_option($ldap_conn_following_ref, LDAP_OPT_REFERRALS, 1); 
     449 
     450                        if ( ($_SESSION['phpgw_info']['expresso']['cc_ldap_server']['acc'] != '') && ($_SESSION['phpgw_info']['expresso']['cc_ldap_server']['pw'] != '') ) 
     451                                ldap_bind($ldap_conn_following_ref, $_SESSION['phpgw_info']['expresso']['cc_ldap_server']['acc'], $_SESSION['phpgw_info']['expresso']['cc_ldap_server']['pw']); 
     452                } 
     453                else 
     454                        return false; 
     455 
    442456                if ($recursive == 'true') 
    443457                { 
    444                         $lists_search = ldap_search($this->ldap, $context, $lists_filter, $justthese); 
    445                         $users_search = ldap_search($this->ldap, $context, $users_filter, $justthese); 
    446                 } 
    447                 else 
    448                 { 
    449                         $lists_search = ldap_list($this->ldap, $context, $lists_filter, $justthese); 
    450                         $users_search = ldap_list($this->ldap, $context, $users_filter, $justthese); 
    451                 } 
    452                  
    453                 $lists_entries = ldap_get_entries($this->ldap, $lists_search); 
     458                        $lists_search = ldap_search($ldap_conn_following_ref, $context, $lists_filter, $justthese); 
     459                        $users_search = ldap_search($ldap_conn_following_ref, $context, $users_filter, $justthese); 
     460                } 
     461                else 
     462                { 
     463                        $lists_search = ldap_list($ldap_conn_following_ref, $context, $lists_filter, $justthese); 
     464                        $users_search = ldap_list($ldap_conn_following_ref, $context, $users_filter, $justthese); 
     465                } 
     466                 
     467                /* email lists */ 
     468                $lists_entries = ldap_get_entries($ldap_conn_following_ref, $lists_search); 
     469                 
    454470                for ($i=0; $i<$lists_entries["count"]; $i++) 
    455471                { 
    456                         $l_tmp[$lists_entries[$i]["uidnumber"][0]] = $lists_entries[$i]["cn"][0]; 
     472                        $l_tmp[$lists_entries[$i]["mail"][0]] = $lists_entries[$i]["cn"][0]; 
    457473                } 
    458474                         
     
    466482                if (count($l_tmp)) 
    467483                { 
    468                         foreach ($l_tmp as $uidnumber => $cn) 
    469                         { 
    470                                 $options .= "<option value=$uidnumber>$cn</option>"; 
     484                        foreach ($l_tmp as $mail => $cn) 
     485                        { 
     486                                $options .= "<option value=$mail>$cn</option>"; 
    471487                        } 
    472488                        unset($l_tmp); 
    473489                } 
    474490                 
    475                 $users_entries = ldap_get_entries($this->ldap, $users_search); 
     491                /* users */ 
     492                $users_entries = ldap_get_entries($ldap_conn_following_ref, $users_search); 
    476493                for ($i=0; $i<$users_entries["count"]; $i++) 
    477494                { 
    478                         $u_tmp[$users_entries[$i]["uidnumber"][0]] = $users_entries[$i]["cn"][0]; 
     495                        $u_tmp[$users_entries[$i]["mail"][0]] = $users_entries[$i]["cn"][0]; 
    479496                } 
    480497                         
     
    488505                if (count($u_tmp)) 
    489506                { 
    490                         foreach ($u_tmp as $uidnumber => $cn) 
    491                         { 
    492                                 $options .= "<option value=$uidnumber class='line-above'>$cn</option>"; 
     507                        foreach ($u_tmp as $mail => $cn) 
     508                        { 
     509                                $options .= "<option value=$mail class='line-above'>$cn</option>"; 
    493510                        } 
    494511                        unset($u_tmp); 
    495512                } 
    496                          
     513                 
     514                ldap_close($ldap_conn_following_ref); 
    497515                return $options; 
    498516        } 
     
    957975        function get_maillist_info($uidnumber) 
    958976        { 
     977                 
     978                /* folling referral connection */ 
     979                $ldap_conn_following_ref = ldap_connect($_SESSION['phpgw_info']['expresso']['cc_ldap_server']['host']); 
     980                if ($ldap_conn_following_ref) 
     981                { 
     982                        ldap_set_option($ldap_conn_following_ref, LDAP_OPT_PROTOCOL_VERSION, 3); 
     983                        ldap_set_option($ldap_conn_following_ref, LDAP_OPT_REFERRALS, 1); 
     984 
     985                        if ( ($_SESSION['phpgw_info']['expresso']['cc_ldap_server']['acc'] != '') && ($_SESSION['phpgw_info']['expresso']['cc_ldap_server']['pw'] != '') ) 
     986                                ldap_bind($ldap_conn_following_ref, $_SESSION['phpgw_info']['expresso']['cc_ldap_server']['acc'], $_SESSION['phpgw_info']['expresso']['cc_ldap_server']['pw']); 
     987                } 
     988                 
    959989                foreach ($this->manager_contexts as $index=>$context) 
    960990                { 
     
    9751005                                $result['context']                              = $sector_dn; 
    9761006                                $result['uidnumber']                    = $entry[0]['uidnumber'][0]; 
    977                                 $result['uid']                                  = $entry[0]['uid'][0]; 
     1007                                $result['uid']                                  = strtolower($entry[0]['uid'][0]); 
    9781008                                $result['cn']                                   = $entry[0]['cn'][0]; 
    9791009                                $result['mail']                                 = $entry[0]['mail'][0]; 
     
    9861016                                        $justthese = array("cn", "uidnumber", "uid", "phpgwaccounttype", "mail"); 
    9871017                                 
    988                                         // Montagem dinamica do filtro 
     1018                                        // Montagem dinamica do filtro, para nao ter muitas conexoes com o ldap 
    9891019                                        $filter="(&(|(phpgwAccountType=u)(phpgwAccountType=l))(|"; 
    9901020                                        for ($k=0; (($k<10) && ($i<$entry[0]['mailforwardingaddress']['count'])); $k++) 
     
    9961026                                        $filter .= "))"; 
    9971027                                 
    998                                         $search = ldap_search($this->ldap, $GLOBALS['phpgw_info']['server']['ldap_context'], $filter, $justthese); 
    999                                         $user_entry = ldap_get_entries($this->ldap, $search); 
    1000                                  
     1028                                        $search = ldap_search($ldap_conn_following_ref, $GLOBALS['phpgw_info']['server']['ldap_context'], $filter, $justthese); 
     1029                                        $user_entry = ldap_get_entries($ldap_conn_following_ref, $search); 
     1030                                                                         
    10011031                                        for ($j=0; $j<$user_entry['count']; $j++) 
    10021032                                        { 
    1003                                                 $result['members_info'][$user_entry[$j]['uidnumber'][0]]['uid'] = $user_entry[$j]['uid'][0]; 
    1004                                                 $result['members_info'][$user_entry[$j]['uidnumber'][0]]['cn'] = $user_entry[$j]['cn'][0]; 
    1005                                                 $result['members_info'][$user_entry[$j]['uidnumber'][0]]['type'] = $user_entry[$j]['phpgwaccounttype'][0]; 
    1006                                                 $result['members_info'][$user_entry[$j]['uidnumber'][0]]['mail'] = $user_entry[$j]['mail'][0]; 
    1007                                                 $result['members'][] = $user_entry[$j]['uidnumber'][0]; 
     1033                                                $result['mailForwardingAddress_info'][$user_entry[$j]['mail'][0]]['uid'] = $user_entry[$j]['uid'][0]; 
     1034                                                $result['mailForwardingAddress_info'][$user_entry[$j]['mail'][0]]['cn'] = $user_entry[$j]['cn'][0]; 
     1035                                                $result['mailForwardingAddress_info'][$user_entry[$j]['mail'][0]]['type'] = $user_entry[$j]['phpgwaccounttype'][0]; 
     1036                                                $result['mailForwardingAddress'][] = $user_entry[$j]['mail'][0]; 
    10081037                                        } 
    10091038                                } 
    10101039 
    1011                                 // Retira o count do array 
    1012                                 array_shift($entry[0]['mailforwardingaddress']); 
    1013  
    1014                                 // Checamos e-mails que não fazem parte do expresso. 
    1015                                 // Criamos um array temporario 
    1016                                 $tmp_array = array(); 
    1017                                 foreach ($result['members_info'] as $uid => $user_data) 
     1040                                // Emails não encontrados no ldap 
     1041                                array_shift($entry[0]['mailforwardingaddress']); //Retira o count do array 
     1042                                $missing_emails = array_diff($entry[0]['mailforwardingaddress'], $result['mailForwardingAddress']); 
     1043                                 
     1044                                // Incluimos estes no resultado 
     1045                                foreach ($missing_emails as $index=>$mailforwardingaddress) 
    10181046                                { 
    1019                                         $tmp_array[] = $user_data['mail']; 
     1047                                        $result['mailForwardingAddress_info'][$mailforwardingaddress]['uid'] = $mailforwardingaddress; 
     1048                                        $result['mailForwardingAddress_info'][$mailforwardingaddress]['cn'] = 'E-Mail nao encontrado'; 
     1049                                        $result['mailForwardingAddress'][] = $mailforwardingaddress; 
    10201050                                } 
    1021  
    1022                                 // Vemos a diferença 
    1023                                 $array_diff = array_diff($entry[0]['mailforwardingaddress'], $tmp_array); 
    1024  
    1025                                 // Incluimos no resultado 
    1026                                 foreach ($array_diff as $index=>$mailforwardingaddress) 
    1027                                 { 
    1028                                         $result['members_info'][$mailforwardingaddress]['uid'] = $mailforwardingaddress; 
    1029                                         $result['members_info'][$mailforwardingaddress]['cn'] = 'E-Mail nao encontrado'; 
    1030                                         $result['members_info'][$mailforwardingaddress]['mailforwardingaddress'] = $mailforwardingaddress; 
    1031                                         $result['members'][] = $mailforwardingaddress; 
    1032                                 } 
     1051                                 
     1052                                ldap_close($ldap_conn_following_ref); 
    10331053                                return $result; 
    10341054                        } 
     
    12921312        } 
    12931313         
    1294         function delete_maillist($uidnumber) 
     1314        function delete_maillist($uidnumber, $mail) 
    12951315        { 
    12961316                $return['status'] = true; 
    12971317                 
    12981318                $justthese = array("dn"); 
     1319                 
     1320                // remove listas dentro de listas 
     1321                $filter="(&(phpgwAccountType=l)(mailForwardingAddress=".$mail."))"; 
     1322                $search = ldap_search($this->ldap, $GLOBALS['phpgw_info']['server']['ldap_context'], $filter, $justthese); 
     1323                $entry = ldap_get_entries($this->ldap, $search); 
     1324                $attrs['mailForwardingAddress'] = $mail; 
     1325                for ($i=0; $i<=$entry['count']; $i++) 
     1326            { 
     1327                        $dn = $entry[$i]['dn']; 
     1328                @ldap_mod_del ( $this->ldap, $dn,  $attrs); 
     1329            } 
     1330                 
    12991331                $filter="(&(phpgwAccountType=l)(uidnumber=".$uidnumber."))"; 
    13001332                $search = ldap_search($this->ldap, $GLOBALS['phpgw_info']['server']['ldap_context'], $filter, $justthese); 
     
    15191551                return $return; 
    15201552        } 
     1553         
     1554        function search_user($params) 
     1555        { 
     1556                $search = $params['search']; 
     1557                $justthese = array("cn","uid", "mail"); 
     1558        $users_list=ldap_search($this->ldap, $GLOBALS['phpgw_info']['server']['ldap_context'], "(&(phpgwAccountType=u) (|(cn=*$search*)(mail=$search*)) )", $justthese); 
     1559         
     1560        if (ldap_count_entries($this->ldap, $users_list) == 0) 
     1561        { 
     1562                $return['status'] = 'false'; 
     1563                $return['msg'] = 'Nenhum resultado encontrado.'; 
     1564                return $return; 
     1565        } 
     1566         
     1567        ldap_sort($this->ldap, $users_list, "cn"); 
     1568         
     1569        $entries = ldap_get_entries($this->ldap, $users_list); 
     1570                 
     1571                $options = ''; 
     1572                for ($i=0; $i<$entries['count']; $i++) 
     1573                { 
     1574                        $options .= "<option value=" . $entries[$i]['uid'][0] . ">" . $entries[$i]['cn'][0] . " (".$entries[$i]['mail'][0].")" . "</option>"; 
     1575                } 
     1576         
     1577        return $options;                 
     1578        } 
     1579         
     1580         
    15211581} 
    15221582?> 
  • trunk/expressoAdmin1_2/inc/class.maillist.inc.php

    r86 r180  
    5050                        $return['status'] = true; 
    5151                         
    52                         //Retira os uids duplicados se existir 
     52                        //Retira os mailForwardingAddress duplicados, se existir algum. 
    5353                        $array_tmp = array(); 
    54                         $array_tmp = array_unique($params['members']); 
    55                         $params['members'] = $array_tmp; 
     54                        $array_tmp = array_unique($params['mailForwardingAddress']); 
     55                        $params['mailForwardingAddress'] = $array_tmp; 
    5656                         
    5757                        // Leio o ID a ser usado na criação do objecto. 
     
    6767                                $id = $next_id['id']; 
    6868                        }                        
    69                         // Pega ID do BD e incrementa de 1. 
    70                         //$id = (($this->db_functions->get_next_id()) + 1); 
    71                         // Incrementa o id no BD. 
    72                         //$this->db_functions->increment_id($id,'accounts'); 
    7369                         
    7470                        // Cria array para incluir no LDAP 
     
    105101                                $maillist_info['phpgwAccountVisible'] = '-1'; 
    106102                         
     103                        /* 
    107104                        foreach($params['members'] as $index=>$uidnumber) 
    108105                        { 
     
    111108                                $this->db_functions->write_log("Adicionado usuario $mail a lista ".$params['cn']." no momento da criação",$dn,$uidnumber,'',''); 
    112109                        } 
     110                        */ 
     111                         
     112                        $maillist_info['mailForwardingAddress'] = $params['mailForwardingAddress']; 
    113113                         
    114114                        $result = $this->ldap_functions->ldap_add_entry($dn, $maillist_info); 
     
    119119                        } 
    120120                         
     121                        /* log */ 
    121122                        if ($return['status'] == true) 
    122123                        { 
    123124                                $this->db_functions->write_log('Criado lista de email','',$dn,'',''); 
     125                                 
     126                                foreach($params['mailForwardingAddress'] as $index=>$mail) 
     127                                { 
     128                                        $this->db_functions->write_log("Adicionado email $mail a lista ".$params['cn']." no momento da criação",$dn,'','',''); 
     129                                } 
    124130                        } 
    125131                         
     
    138144 
    139145                        $return['status'] = true; 
    140                          
    141                         //Retira os uids duplicados se existir 
    142                         $array_tmp = array(); 
    143                         $array_tmp = array_unique($new_values['members']); 
    144                         $new_values['members'] = $array_tmp; 
    145                          
     146 
    146147                        $old_values = $this->get_info($new_values['uidnumber'], $new_values['manager_context']); 
    147148                        $diff = array_diff($new_values, $old_values); 
     
    233234                        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    234235                        // USERS 
    235  
    236                         if (!$new_values['members']) 
    237                                 $new_values['members'] = array(); 
    238                         if (!$old_values['members']) 
    239                                 $old_values['members'] = array(); 
    240  
    241                         $add_users = array_diff($new_values['members'], $old_values['members']); 
    242                         $remove_users = array_diff($old_values['members'], $new_values['members']); 
     236                        if (!$new_values['mailForwardingAddress']) 
     237                                $new_values['mailForwardingAddress'] = array(); 
     238                        if (!$old_values['mailForwardingAddress']) 
     239                                $old_values['mailForwardingAddress'] = array(); 
     240 
     241                        $add_users = array_diff($new_values['mailForwardingAddress'], $old_values['mailForwardingAddress']); 
     242                        $remove_users = array_diff($old_values['mailForwardingAddress'], $new_values['mailForwardingAddress']); 
     243                         
     244/*                      echo '<pre>'; 
     245                        print_r($new_values);*/ 
    243246                         
    244247                        if (count($add_users)>0) 
    245248                        { 
    246                                 $array_emails_add = array(); 
    247                                 foreach($add_users as $uidnumber) 
    248                                 { 
    249                                         if ($uidnumber != -1) 
     249                                sort($add_users); 
     250                                $result = $this->ldap_functions->add_user2maillist($new_values['uidnumber'], $add_users); 
     251                                 
     252                                /* log */ 
     253                                if (!$result['status']) 
     254                                { 
     255                                        $return['status'] = false; 
     256                                        $return['msg'] .= $result['msg']; 
     257                                } 
     258                                else 
     259                                { 
     260                                        foreach($add_users['mailForwardingAddress'] as $index=>$mail) 
    250261                                        { 
    251                                                 $mail = $this->ldap_functions->uidnumber2mail($uidnumber); 
    252                                                 $array_emails_add[] = $mail; 
    253                                                 $this->db_functions->write_log("Adicionado usuario $mail a lista",$dn,$uidnumber,'',''); 
     262                                                $this->db_functions->write_log("Adicionado usuario $mail a lista de email $dn",$dn,'','',''); 
    254263                                        } 
    255264                                } 
    256                                 $this->ldap_functions->add_user2maillist($new_values['uidnumber'], $array_emails_add); 
    257                         } 
     265                        } 
     266                         
    258267                        if (count($remove_users)>0) 
    259268                        { 
    260                                 $array_emails_remove = array(); 
    261                                 foreach($remove_users as $uidnumber) 
    262                                 { 
    263                                         if ($uidnumber != -1) 
     269                                sort($remove_users); 
     270                                $result = $this->ldap_functions->remove_user2maillist($new_values['uidnumber'], $remove_users); 
     271                                 
     272                                /* log */ 
     273                                if (!$result['status']) 
     274                                { 
     275                                        $return['status'] = false; 
     276                                        $return['msg'] .= $result['msg']; 
     277                                } 
     278                                else 
     279                                { 
     280                                        foreach($remove_users as $index=>$mail) 
    264281                                        { 
    265                                                 $mail = $this->ldap_functions->uidnumber2mail($uidnumber); 
    266                                          
    267                                                 // Não achei o email do usuário no ldap. 
    268                                                 if (empty($mail)) 
    269                                                         $mail = $uidnumber; 
    270                                          
    271                                                 $array_emails_remove[] = $mail; 
    272                                                 $this->db_functions->write_log("Removido usuario $mail da lista",$dn,$uidnumber,'',''); 
     282                                                $this->db_functions->write_log("Removido usuario $mail da lista de email $dn",$dn,'','',''); 
    273283                                        } 
    274284                                } 
    275                                 $this->ldap_functions->remove_user2maillist($new_values['uidnumber'], $array_emails_remove); 
    276285                        } 
    277286                         
     
    431440                        $uidnumber = $params['uidnumber']; 
    432441                        $uid = $this->ldap_functions->uidnumber2uid($uidnumber); 
     442                        $mail = $this->ldap_functions->uidnumber2mail($uidnumber); 
    433443 
    434444                        //LDAP 
    435                         $result_ldap = $this->ldap_functions->delete_maillist($uidnumber); 
     445                        $result_ldap = $this->ldap_functions->delete_maillist($uidnumber, $mail); 
    436446                        if (!$result_ldap['status']) 
    437447                        { 
  • trunk/expressoAdmin1_2/inc/class.uiaccounts.inc.php

    r107 r180  
    281281                                'photo_bin'                                             => $GLOBALS['phpgw_info']['server']['webserver_url'].'/expressoAdmin1_2/templates/default/images/photo_celepar.png', 
    282282                                'display_picture'                               => $this->functions->check_acl($manager_lid,'edit_users_picture') ? '' : 'none',  
    283                                 'disabled_delete_photo'                 => 'disabled', 
    284283                                'display_tr_default_password'   => 'none', 
    285284                                'minimumSizeLogin'                              => $this->current_config['expressoAdmin_minimumSizeLogin'], 
     
    363362                        $disabled_password = 'disabled'; 
    364363                        $disabled_samba = 'disabled'; 
     364                        $disabled_edit_photo = 'disabled'; 
     365                        $display_picture = 'none'; 
    365366                        if ((!$this->functions->check_acl($manager_account_lid,'edit_users')) && 
    366367                                (!$this->functions->check_acl($manager_account_lid,'change_users_password')) && 
     
    402403                                $disabled_quote = 'readonly'; 
    403404                         
     405                        if ($this->functions->check_acl($manager_account_lid,'edit_users_picture')) 
     406                        { 
     407                                $disabled_edit_photo = ''; 
     408                                $display_picture = ''; 
     409                        } 
    404410                        // GET all infomations about the user. 
    405411                        $user_info = $this->user->get_user_info($_GET['account_id']); 
     
    625631                                'telephonenumber'                               => $user_info['telephonenumber'], 
    626632                                'photo_bin'                                             => $photo_bin, 
    627                                 'disabled_delete_photo'                 => $disabled_delete_photo, 
    628                                 'display_picture'                               => $this->functions->check_acl($manager_account_lid,'edit_users_picture') ? '' : 'none', 
     633                                'disabled_edit_photo'                   => $disabled_edit_photo, 
     634                                //'display_picture'                             => $this->functions->check_acl($manager_account_lid,'edit_users_picture') ? '' : 'none', 
     635                                'display_picture'                               => $display_picture, 
    629636                                 
    630637                                'display_tr_default_password'   => $this->functions->check_acl($manager_account_lid,'set_user_default_password') ? '' : 'none', 
  • trunk/expressoAdmin1_2/inc/class.uigroups.inc.php

    r73 r180  
    289289                        $p->set_file(Array('create_group' => 'groups_form.tpl')); 
    290290 
    291                         // Pega combo das organizações e seleciona a org do grupo. 
    292                         //$combo_manager_org = $this->functions->get_organizations($manager_context, trim(strtolower($group_info['context']))); 
     291                        // Obtem combo das organizações e seleciona a org do grupo. 
    293292                        foreach ($manager_contexts as $index=>$context) 
    294293                                $combo_manager_org .= $this->functions->get_organizations($context, trim(strtolower($group_info['context']))); 
  • trunk/expressoAdmin1_2/inc/class.uimaillists.inc.php

    r73 r180  
    186186                        $p->set_file(Array('create_maillist' => 'maillists_form.tpl')); 
    187187 
    188                         // Pega combo das organizações. 
     188                        // Obtem combos das organizações. 
    189189                        foreach ($manager_contexts as $index=>$context) 
    190                                 $sectors .= $this->functions->get_organizations($context); 
    191  
     190                                $combo_manager_org .= $this->functions->get_organizations($context); 
     191                        $combo_all_orgs = $this->functions->get_organizations($GLOBALS['phpgw_info']['server']['ldap_context'], '', true, true);                         
     192                         
    192193                        // Seta variaveis utilizadas pelo tpl. 
    193194                        $var = Array( 
     
    203204                                'lang_maillist_organization'=> lang('Maillist Organization'), 
    204205                                'lang_search_organization'      => lang('Search Organiztion'), 
    205                                 'lang_org'                                      => lang('Organizations'), 
     206                                'lang_search_user'                      => lang('Search user'), 
     207                                'lang_organizations'            => lang('Organizations'), 
    206208                                'lang_maillist_uid'                     => lang('Maillist login'), 
    207209                                'lang_maillist_mail'            => lang('Maillist Mail'), 
     
    212214                                'lang_all_users'                        => lang('Show users from all sub-organizations'), 
    213215                                'back_url'                                      => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uimaillists.list_maillists'), 
    214                                 'combo_org'                                     => $sectors 
     216                                'combo_manager_org'                     => $combo_manager_org, 
     217                                'combo_all_orgs'                        => $combo_all_orgs, 
     218                                'defaultDomain'                         => $this->current_config['expressoAdmin_defaultDomain'] 
    215219                        ); 
    216220                        $p->set_var($var); 
     
    245249                        $p->set_file(Array('edit_maillist' => 'maillists_form.tpl')); 
    246250 
    247                         // Pega combo das organizações e seleciona a org da lista. 
    248                         foreach ($manager_contexts as $index=>$context) 
    249                                 $sectors .= $this->functions->get_organizations($context, trim(strtolower($maillist_info['context'])) ); 
     251                        // Obtem combos das organizações. 
     252                        foreach ($manager_contexts as $index=>$context) 
     253                                $combo_manager_org .= $this->functions->get_organizations($context, trim(strtolower($maillist_info['context']))); 
     254                        $combo_all_orgs = $this->functions->get_organizations($GLOBALS['phpgw_info']['server']['ldap_context'], trim(strtolower($maillist_info['context'])), true, true);                        
    250255 
    251256                        // Usuarios da lista. 
    252257                        $user_count = 0; 
    253                         if (count($maillist_info['members_info']) > 0) 
    254                         { 
    255                                 foreach ($maillist_info['members_info'] as $uidnumber=>$userinfo) 
    256                                 { 
    257                                         $array_users[$uidnumber] = $userinfo['cn']; 
    258                                         $array_users_uid[$uidnumber] = $userinfo['uid']; 
    259                                         $array_users_type[$uidnumber] = $userinfo['type']; 
     258                        if (count($maillist_info['mailForwardingAddress_info']) > 0) 
     259                        { 
     260                                foreach ($maillist_info['mailForwardingAddress_info'] as $mail=>$userinfo) 
     261                                { 
     262                                        $array_users[$mail] = $userinfo['cn']; 
     263                                        $array_users_uid[$mail] = $userinfo['uid']; 
     264                                        $array_users_type[$mail] = $userinfo['type']; 
    260265                                } 
    261266                                natcasesort($array_users); 
    262                                 foreach ($array_users as $uidnumber=>$cn) 
     267                                foreach ($array_users as $mail=>$cn) 
    263268                                { 
    264269                                        $user_count++; 
    265                                         if ($array_users_type[$uidnumber] == 'u') 
    266                                         { 
    267                                                 $users .= "<option value=" . $uidnumber . ">" . $cn .  " [" . $array_users_uid[$uidnumber] . "]</option>"; 
    268                                         } 
    269                                         elseif ($array_users_type[$uidnumber] == 'l') 
    270                                         { 
    271                                                 $lists .= "<option value=" . $uidnumber . ">" . $cn .  " [" . $array_users_uid[$uidnumber] . "]</option>"; 
     270                                        if ($array_users_type[$mail] == 'u') 
     271                                        { 
     272                                                $users .= "<option value=" . $mail . ">" . $cn .  " [" . $array_users_uid[$mail] . "]</option>"; 
     273                                        } 
     274                                        elseif ($array_users_type[$mail] == 'l') 
     275                                        { 
     276                                                $lists .= "<option value=" . $mail . ">" . $cn .  " [" . $array_users_uid[$mail] . "]</option>"; 
    272277                                        } 
    273278                                        else 
    274279                                        { 
    275                                                 $unknow .= "<option value=" . $uidnumber . ">" . $cn .  " [" . $array_users_uid[$uidnumber] . "]</option>"; 
     280                                                $mail_not_found .= "<option value=" . $mail . ">" . $cn .  " [" . $array_users_uid[$mail] . "]</option>"; 
    276281                                        } 
    277282                                } 
    278283                                 
    279                                 if ($unknow != '') 
    280                                 { 
    281                                         $opt_tmp_unknow = '<option  value="-1" disabled>--------------------&nbsp;&nbsp;&nbsp;&nbsp;E-mails não encontrados&nbsp;&nbsp;&nbsp;&nbsp;------------------ </option>'."\n"; 
    282                                         $ea_select_usersInMaillist .= $opt_tmp_unknow . $unknow; 
     284                                if ($mail_not_found != '') 
     285                                { 
     286                                        $opt_tmp_mail_not_found = '<option  value="-1" disabled>--------------------&nbsp;&nbsp;&nbsp;&nbsp;E-mails não encontrados&nbsp;&nbsp;&nbsp;&nbsp;------------------ </option>'."\n"; 
     287                                        $ea_select_usersInMaillist .= $opt_tmp_mail_not_found . $mail_not_found; 
    283288                                } 
    284289                                if ($lists != '') 
     
    299304                                'lang_back'                                             => lang('Back'), 
    300305                                'lang_save'                                             => lang('save'), 
    301                                 'lang_maillist_organization'=> lang('Maillist Organization'), 
    302                                 'lang_search_organization'      => lang('Search Organiztion'), 
    303                                 'lang_org'                                              => lang('Organizations'), 
     306                                'lang_maillist_organization'    => lang('Maillist Organization'), 
     307                                'lang_search_organization'              => lang('Search Organiztion'), 
     308                                'lang_search_user'                              => lang('Search user'), 
     309                                'lang_organizations'                    => lang('Organizations'), 
    304310                                'lang_maillist_uid'                             => lang('Maillist login'), 
    305311                                'lang_maillist_mail'                    => lang('Maillist Mail'), 
     
    310316                                'lang_all_users'                                => lang('Select users from all sub-organizations'), 
    311317                                'back_url'                                              => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uimaillists.list_maillists'), 
    312                                 'combo_org'                                             => $sectors, 
     318                                'combo_manager_org'                             => $combo_manager_org, 
     319                                'combo_all_orgs'                                => $combo_all_orgs, 
    313320                                'uidnumber'                                             => $_GET['uidnumber'], 
    314321                                'uid'                                                   => $maillist_info['uid'], 
     
    318325                                'accountStatus_checked'                 => $maillist_info['accountStatus'] == 'active' ? 'CHECKED' : '', 
    319326                                'phpgwAccountVisible_checked'   => $maillist_info['phpgwAccountVisible'] == '-1' ? 'CHECKED' : '', 
    320                                 'ea_select_usersInMaillist'             => $ea_select_usersInMaillist 
     327                                'ea_select_usersInMaillist'             => $ea_select_usersInMaillist, 
     328                                'defaultDomain'                                 => $this->current_config['expressoAdmin_defaultDomain'] 
    321329                        ); 
    322330                        $p->set_var($var); 
  • trunk/expressoAdmin1_2/inc/class.uimanagers.inc.php

    r107 r180  
    151151                        $applications_list = $this->make_app_list(''); 
    152152                         
     153                        /* 
    153154                        if ($_POST['context']) 
    154155                        { 
     
    158159                        } 
    159160                        else 
    160                         $input_context_fields = '<input type="text" size=60></input><br>'; 
     161                                $input_context_fields = '<input type="text" size=60></input><br>'; 
     162                        */ 
     163                         
     164                        $options_context = $this->functions->get_organizations($GLOBALS['phpgw_info']['server']['ldap_context'], '', false, true); 
    161165                         
    162166                        // Seta variaveis que estao no TPL 
    163167                        $var = Array( 
    164168                                'scripts_java'                  =>      $scripts_java,   
    165                                 'action'                                => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uimanagers.validate'), 
     169                                //'action'                              => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uimanagers.validate'), 
     170                                //'action'                              => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.bomanagers.add_managers'), 
    166171                                'display_samba_suport'  => $this->config['expressoAdmin_samba_support'] == 'true' ? '' : 'display:none', 
    167172                                'type'                                  => "add", 
     
    174179                                'manager_lid'                   => $_POST['manager_lid'], 
    175180                                'context'                               => $_POST['context'], 
    176                                 'app_list'                              => $applications_list 
     181                                'app_list'                              => $applications_list, 
     182                                'options_contexts'              => $options_context 
    177183                        ); 
    178184                        $p->set_var($var); 
     
    236242                                $_POST['manager_lid']   = $_GET['manager_lid']; 
    237243                                $_POST['context']               = $_GET['context']; 
    238                                 $old_manager_lid                = $_GET['manager_lid']; 
    239                                 $old_context                    = $_GET['context']; 
     244                                $hidden_manager_lid             = $_GET['manager_lid']; 
    240245                        } 
    241246                        elseif ($_POST['manager_lid'] != '') 
    242247                        { 
    243248                                $first_time             = false; 
    244                                 $old_manager_lid        = $_POST['old_manager_lid']; 
    245                                 $old_context            = $_POST['old_context'];                                 
     249                                $hidden_manager_lid     = $_POST['old_manager_lid'];                             
    246250                        } 
    247251                         
     
    287291                        $a_context = split("%", $_POST['context']); 
    288292                        foreach ($a_context as $context) 
    289                                 $input_context_fields .= '<input type="text" value="'.$context.'" size=60></input><br>'; 
     293                                $input_context_fields .= '<div><input disabled type="text" value="'.$context.'" size=60></input><span onclick="this.parentNode.parentNode.removeChild(this.parentNode);" style="cursor:pointer"> -</span></div>'; 
     294                        $options_context = $this->functions->get_organizations($GLOBALS['phpgw_info']['server']['ldap_context'], '', false, true); 
    290295 
    291296                        $var = Array( 
    292                                 'scripts_java'  => $scripts_java, 
    293                                 'action'                => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uimanagers.validate'), 
    294                                 'display_samba_suport'  => $this->config['expressoAdmin_samba_support'] == 'true' ? '' : 'display:none', 
    295                                 'color_bg1'             => "#E8F0F0", 
    296                                 'color_bg2'             => "#D3DCE3", 
    297                                 'color_font1'   => "#DDDDDD", 
    298                                 'color_font2'   => "#EEEEEE", 
    299                                 'type'                  => "edit", 
    300                                 'error_messages'=> $_POST['error_messages'] == '' ? '' : '<script language="JavaScript1.3">alert("'.$_POST['error_messages'].'");</script>', 
    301                                 'manager_lid'   => $_POST['manager_lid'], 
    302                                 'context'               => $_POST['context'], 
     297                                'scripts_java'                          => $scripts_java, 
     298                                'action'                                        => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uimanagers.validate'), 
     299                                'display_samba_suport'          => $this->config['expressoAdmin_samba_support'] == 'true' ? '' : 'display:none', 
     300                                'color_bg1'                                     => "#E8F0F0", 
     301                                'color_bg2'                                     => "#D3DCE3", 
     302                                'color_font1'                           => "#DDDDDD", 
     303                                'color_font2'                           => "#EEEEEE", 
     304                                'type'                                          => "edit", 
     305                                'display_manager_select'        => 'none', 
     306                                'input_manager_lid_disabled'=> 'disabled', 
     307                                'error_messages'                        => $_POST['error_messages'] == '' ? '' : '<script language="JavaScript1.3">alert("'.$_POST['error_messages'].'");</script>', 
     308                                'manager_lid'                           => $_POST['manager_lid'], 
     309                                'hidden_manager_lid'            => $_POST['manager_lid'], 
     310                                'context'                                       => $_POST['context'], 
    303311                                 
    304                                 'input_context_fields' => $input_context_fields, 
     312                                'input_context_fields'          => $input_context_fields, 
     313                                'options_contexts'                      => $options_context, 
    305314                                 
    306                                 // Para o update no banco, preciso saber oq foi alterado e para que. 
    307                                 // Talvez so o manager e o contexto. 
    308                                 'old_manager_lid'       => $old_manager_lid, 
    309                                 'old_context'           => $old_context, 
    310                                 'app_list'                      => $applications_list 
     315                                'hidden_manager_lid'            => $hidden_manager_lid, 
     316                                'app_list'                                      => $applications_list 
    311317                        ); 
    312318                        $p->set_var($var); 
     
    335341                } 
    336342                 
     343                /* 
    337344                function validate() 
    338                 {        
     345                { 
     346                        return 'OK'; 
     347                         
    339348                        $accounts = CreateObject('phpgwapi.accounts'); 
    340349                        $errors = array(); 
    341350                         
     351                         
    342352                        // verifica se o manager existe. caso retorne 1 existe e eh uma conta de usuario. 
    343                         $manager_lid_exists = $accounts->exists($_POST['manager_lid']); 
     353                        $manager_lid_exists = $accounts->exists($_POST['ea_select_managers']); 
    344354                        if ($manager_lid_exists != 1) 
    345355                        { 
     
    351361                                return; 
    352362                        } 
     363                         
    353364                         
    354365                        // Verifica se o contexto existe. 
     
    367378                                if (!$sr) 
    368379                                { 
    369                                         $_POST['error_messages'] = lang("Context don't exist") . ": $context";                   
     380                                        $_POST['error_messages'] = lang("Context don't exist") . ": $context"; 
    370381                                        ldap_close($ldap_conn); 
    371382                                        if ($_POST['type'] == 'add')     
     
    380391                        { 
    381392                                //Verifica se ja existe o manager com aquele contexto cadastrado 
    382                                 $query = "SELECT manager_lid FROM phpgw_expressoadmin WHERE manager_lid = '" . $_POST['manager_lid'] . "' AND context = '" . $_POST['context'] . "'";                            
     393                                $query = "SELECT manager_lid FROM phpgw_expressoadmin WHERE manager_lid = '" . $_POST['ea_select_manager'] . "' AND context = '" . $_POST['context'] . "'";                              
    383394                                $GLOBALS['phpgw']->db->query($query); 
    384395                                $num_registros = 0; 
     
    403414                        return true; 
    404415                } 
     416                */ 
    405417                 
    406418                function make_lang($ram_lang) 
  • trunk/expressoAdmin1_2/inc/class.user.inc.php

    r107 r180  
    469469                        // ADD or REMOVE some attributes 
    470470                        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
     471 
     472                        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
     473                        // PHOTO 
     474                        if ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_users_picture')) 
     475                        { 
     476                                if ($new_values['delete_photo']) 
     477                                { 
     478                                        $this->ldap_functions->ldap_remove_photo($dn); 
     479                                        $this->db_functions->write_log("removido jpegphoto do usuario",'',$dn,'',''); 
     480                                } 
     481                                elseif ($_FILES['photo']['name'] != '') 
     482                                { 
     483                                        if ($new_values['photo_exist']) 
     484                                        { 
     485                                                $photo_exist = true; 
     486                                                $this->db_functions->write_log("substituido jpegphoto do usuario",'',$dn,'',''); 
     487                                        } 
     488                                        else 
     489                                        { 
     490                                                $photo_exist = false; 
     491                                                $this->db_functions->write_log("adicionado jpegphoto ao usuario",'',$dn,'',''); 
     492                                        } 
     493                                        $this->ldap_functions->ldap_save_photo($dn, $_FILES['photo']['tmp_name'], $new_values['photo_exist'], $photo_exist); 
     494                                }        
     495                        } 
    471496                         
    472497                        // Verifica o acesso ára adicionar ou remover tais atributos 
     
    532557                                        $ldap_remove['phpgwaccountvisible'] = array(); 
    533558                                        $this->db_functions->write_log("removido phpgwaccountvisible ao usuario",'',$dn,'',''); 
    534                                 } 
    535                                 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
    536                                 // PHOTO 
    537                                 if ( ($new_values['delete_photo']) && ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_users_picture')) ) 
    538                                 { 
    539                                         $this->ldap_functions->ldap_remove_photo($dn); 
    540                                         $this->db_functions->write_log("removido jpegphoto do usuario",'',$dn,'',''); 
    541                                 } 
    542                                 elseif ( ($_FILES['photo']['name'] != '') && ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_users_picture')) ) 
    543                                 { 
    544                                         if ($new_values['photo_exist']) 
    545                                                 $photo_exist = true; 
    546                                         else 
    547                                                 $photo_exist = false; 
    548                                         $this->ldap_functions->ldap_save_photo($dn, $_FILES['photo']['tmp_name'], $new_values['photo_exist'], $photo_exist); 
    549                                         $this->db_functions->write_log("adicionado jpegphoto ao usuario",'',$dn,'',''); 
    550559                                } 
    551560                                //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
  • trunk/expressoAdmin1_2/index.php

    r64 r180  
    11<?php 
    22        /*************************************************************************************\ 
    3         * Expresso Administração                                                                                                     * 
     3        * Expresso Administração                                                                                                     * 
    44        * by Joao Alfredo Knopik Junior (joao.alfredo@gmail.com, jakjr@celepar.pr.gov.br)        * 
    55        * -----------------------------------------------------------------------------------* 
  • trunk/expressoAdmin1_2/js/jscode/expressoadmin.js

    r64 r180  
    1313        if (concatenateDomain == 'true') 
    1414        { 
     15                // base_dn do LDAP Expresso 
    1516                var ldap_context = document.forms[0].ldap_context.value.toLowerCase(); 
    16          
     17                 
     18                // OU selecionada 
    1719                organization_context = document.forms[0].context.value.toLowerCase(); 
     20                 
    1821                select_orgs = document.getElementById('ea_combo_org_info'); 
    1922                for(var i=0; i<select_orgs.options.length; i++) 
     
    2326                                var x; 
    2427                                var context = ''; 
     28                                 
     29                                // OU selecionada 
    2530                                select_context = select_orgs.options[i].value.toLowerCase(); 
     31                                 
     32                                // Transformar os DN em User Friendly Naming format 
    2633                                organization_name = organization_context.split(","); 
    27                          
    2834                                for (x in organization_name) 
    2935                                { 
     
    3541                domain_name = document.forms[0].defaultDomain.value; 
    3642         
     43                // Retira o base_dn do valor do dn e retorna o numero de caracteres. 
    3744                x=context.indexOf(ldap_context,0); 
     45                // Obtenho a string, sem o base_dn 
    3846                org_name_par = context.substring(0,(x-1)); 
     47                // Obtenho o nome da organização: String entre pontos, anterior ao base_dn 
    3948                org_name = org_name_par.split('.'); 
    4049                org_name = org_name[org_name.length-1]; 
  • trunk/expressoAdmin1_2/js/jscode/maillists.js

    r86 r180  
    368368} 
    369369 
    370 function search_organization(key) 
    371 { 
    372         var organizations = document.getElementById('ea_combo_org_info'); 
     370function search_organization(key, element) 
     371{ 
     372        var organizations = document.getElementById(element); 
    373373        var RegExp_org = new RegExp("\\b"+key, "i"); 
    374374         
     
    382382        } 
    383383} 
     384 
     385function emailSuggestion_maillist() 
     386{ 
     387        var defaultDomain = document.forms[0].defaultDomain.value; 
     388        var base_dn = "." + dn2ufn(document.forms[0].ldap_context.value); 
     389        var selected_context = dn2ufn(document.forms[0].context.value.toLowerCase()); 
     390 
     391        var uid = document.getElementById("ea_maillist_uid"); 
     392        var mail= document.getElementById("ea_maillist_mail"); 
     393         
     394        var raw_selected_context = selected_context.replace(base_dn, ""); 
     395         
     396        var array_org_name = raw_selected_context.split('.'); 
     397        var org_name = array_org_name[array_org_name.length-1]; 
     398         
     399        if (mail.value == "") 
     400                mail.value = uid.value + "@" + org_name + "." + defaultDomain; 
     401} 
     402 
     403function dn2ufn(dn) 
     404{ 
     405        var ufn = ''; 
     406        var array_dn = dn.split(","); 
     407        for (x in array_dn) 
     408        { 
     409                var tmp = array_dn[x].split("="); 
     410                ufn += tmp[1] + '.'; 
     411        } 
     412        return ufn.substring(0,(ufn.length-1)); 
     413} 
  • trunk/expressoAdmin1_2/js/jscode/managers.js

    r64 r180  
     1countFiles = 1; 
    12function copy_manager(manager) 
    23{ 
     
    1516function add_input_context() 
    1617{ 
     18        var new_context_value = document.getElementById("ea_select_contexts").value; 
     19        children = document.getElementById("td_input_context").getElementsByTagName("input"); 
     20         
     21        for (var i=0; i<children.length; i++) 
     22        { 
     23                if (new_context_value.indexOf(children[i].value) != -1) 
     24                { 
     25                        document.getElementById("ea_spam_warn").innerHTML = 'Context já adicionado ou redundante.' 
     26                        setTimeout("document.getElementById(\"ea_spam_warn\").innerHTML = '&nbsp;'", 4000); 
     27                        return; 
     28                } 
     29                 
     30                if (children[i].value.indexOf(new_context_value) != -1) 
     31                { 
     32                        children[i].parentNode.parentNode.removeChild(children[i].parentNode); 
     33                        --i; 
     34                        document.getElementById("ea_spam_warn").innerHTML = 'Removido contexto(s) reduntate(s).' 
     35                        setTimeout("document.getElementById(\"ea_spam_warn\").innerHTML = '&nbsp;'", 4000); 
     36                } 
     37        } 
     38 
     39        var div = document.createElement("DIV"); 
     40         
    1741        var input = document.createElement("INPUT"); 
    1842        input.size = 60; 
    19         document.getElementById("td_input_context").appendChild(input); 
     43        input.disabled = true; 
     44        input.value = document.getElementById("ea_select_contexts").value; 
     45         
     46        var span = document.createElement("SPAN"); 
     47        span.innerHTML = " -"; 
     48        span.style.cursor = "pointer"; 
     49        span.onclick = function(){ this.parentNode.parentNode.removeChild(this.parentNode); }; 
     50         
     51        div.appendChild(input); 
     52        div.appendChild(span); 
     53        document.getElementById("td_input_context").appendChild(div); 
    2054} 
    2155 
    22 function validade_managers_data() 
     56function validade_managers_data(type) 
    2357{ 
    24         var context = ''; 
    25         var input_context_fields = document.getElementById('td_input_context').childNodes;       
     58        var contexts = ''; 
     59        var input_context_fields = document.getElementById('td_input_context').getElementsByTagName("input"); 
    2660        for (var i=0; i<input_context_fields.length; i++) 
    2761        { 
    2862                if ((input_context_fields[i].nodeName === 'INPUT') && (input_context_fields[i].value != '')) 
    2963                { 
    30                         context += input_context_fields[i].value + '%'; 
     64                        contexts += input_context_fields[i].value + '%'; 
    3165                } 
    3266        } 
    33         context = context.substring(0,context.length-1); 
    34         document.managers_form.context.value = context; 
    3567         
    36         if(document.managers_form.manager_lid.value == '') { 
    37                 alert('Campo "Manager LID" está vazio.'); 
    38                 document.managers_form.manager_lid.focus(); 
    39                 return; 
     68        //Salvo parao Post 
     69        document.managers_form.context.value = contexts.substring(0,contexts.length-1); 
     70        contexts =      encodeURIComponent(contexts.substring(0,contexts.length-1)); 
     71 
     72        var handler_validade = function(data) 
     73        { 
     74                if (data.status == 'false') 
     75                { 
     76                        alert(data.msg); 
     77                        return; 
     78                } 
     79                else 
     80                { 
     81                        if (type == 'add') 
     82                                cExecuteForm ("$this.manager.create", document.forms[0], handler_createsave_manager); 
     83                        else 
     84                                cExecuteForm ("$this.manager.save", document.forms[0], handler_createsave_manager); 
     85                } 
     86        }; 
     87         
     88        cExecute ('$this.manager.validate&contexts='+contexts+'&manager_lid='+document.managers_form.ea_select_manager.value+'&type='+type, handler_validade); 
     89} 
     90function handler_createsave_manager(data){ 
     91        return_handler_createsave_manager(data); 
     92} 
     93function return_handler_createsave_manager(data) 
     94{ 
     95        if (data.status == 'false') 
     96        { 
     97                alert(data.msg); 
    4098        } 
    41         else if(document.managers_form.context.value == '') { 
    42                 alert('Contexto está vazio.'); 
    43                 document.managers_form.context.focus(); 
    44                 return; 
     99        else 
     100        { 
     101                if (data.type == 'create') 
     102                        alert('Gerente criado com êxito'); 
     103                else 
     104                        alert('Gerente salvo com êxito'); 
     105        } 
     106        location.href="./index.php?menuaction=expressoAdmin1_2.uimanagers.list_managers"; 
     107        return; 
     108} 
     109 
     110var searchTimeout; 
     111function search_manager(manager_lid) 
     112{ 
     113        clearTimeout(searchTimeout); 
     114         
     115        var spam = document.getElementById('ea_span_searching_manager'); 
     116        if (manager_lid.length <= 3) 
     117                spam.innerHTML = 'Digite mais ' + (4 - manager_lid.length) + ' letras.'; 
     118        else 
     119        { 
     120                spam.innerHTML = 'Procurando...'; 
     121                searchTimeout = setTimeout("search_user('"+manager_lid+"')",750); 
     122        } 
     123} 
     124 
     125function search_user(search) 
     126{ 
     127        var handler_search_manager = function(data) 
     128        { 
     129                var spam = document.getElementById('ea_span_searching_manager'); 
     130                select_available_users = document.getElementById('ea_select_managers'); 
     131                 
     132                if (data.status == 'false') 
     133                { 
     134                        spam.innerHTML = data.msg; 
     135                        // Necessario, pois o IE6 tem um bug que retira o primeiro options se o innerHTML estiver vazio. 
     136                        select_available_users.innerHTML = '#'; 
     137                        select_available_users.outerHTML = select_available_users.outerHTML; 
     138                        return; 
     139                } 
     140                 
     141                spam.innerHTML = ''; 
     142                // Necessario, pois o IE6 tem um bug que retira o primeiro options se o innerHTML estiver vazio. 
     143                select_available_users.innerHTML = '#' + data; 
     144                select_available_users.outerHTML = select_available_users.outerHTML; 
    45145        } 
    46146         
    47         document.managers_form.submit(); 
     147        cExecute ('$this.ldap_functions.search_user&search='+search, handler_search_manager); 
    48148} 
     149 
     150function select_all_acls(parent) 
     151{ 
     152        var acls = document.getElementById(parent).getElementsByTagName("input"); 
     153        for (var i=0; i<acls.length; i++) 
     154        { 
     155                acls[i].checked = true; 
     156        } 
     157 
     158} 
  • trunk/expressoAdmin1_2/templates/default/accounts_form.tpl

    r108 r180  
    9090                        <td rowspan="4" width="35%" style="display:{display_picture}"> 
    9191                                <img align="center" src="{photo_bin}" id="ea_img_photo" border="0"> 
    92                                 <input type="file" id="ea_input_photo" name="photo" {disabled} size=20><br> 
    93                                 <input type="checkbox" {disabled_delete_photo} {disabled} name="delete_photo" value="1">Deletar foto 
     92                                <input type="file" id="ea_input_photo" name="photo" {disabled_edit_photo} size=20><br> 
     93                                <input type="checkbox" {disabled_delete_photo} {disabled_edit_photo} name="delete_photo" value="1">Deletar foto 
    9494                        </td> 
    9595                </tr> 
  • trunk/expressoAdmin1_2/templates/default/maillists_form.tpl

    r73 r180  
    1212                                        <input type="hidden" name="manager_context" value="{manager_context}"> 
    1313                                        <input type="hidden" name="restrictionsOnEmailLists" value="{restrictionsOnEmailLists}"> 
     14                                        <input type="hidden" name="defaultDomain" value="{defaultDomain}"> 
    1415 
    1516                                        <tr> 
     
    2324                                                <td width="25%" bgcolor="#DDDDDD"> 
    2425                                                        {lang_search_organization}:<br> 
    25                                                         <input type="text" id="organization_search" autocomplete="off" size=20 onKeyUp="javascript:search_organization(this.value);" onBlur="javascript:sinc_combos_org(context.value, ea_check_allUsers.checked);"> 
     26                                                        <input type="text" id="organization_search" autocomplete="off" size=20 onKeyUp="javascript:search_organization(this.value, 'ea_combo_org_info');" onBlur="javascript:sinc_combos_org(context.value, ea_check_allUsers.checked);"> 
    2627                                                        <br> 
    2728                                                        {lang_maillist_organization}:<br> 
    28                                                         <select id="ea_combo_org_info" name="context" onchange="javascript:sinc_combos_org(this.value, ea_check_allUsers.checked);">{combo_org}</select><br> 
     29                                                        <select id="ea_combo_org_info" name="context" onchange="javascript:sinc_combos_org(this.value, ea_check_allUsers.checked);">{combo_manager_org}</select><br> 
     30                                                         
    2931                                                        {lang_maillist_uid}: <font color="blue">Ex: lista-celepar-rh</font> 
    30                                                         <input name="uid" size="35" value="{uid}" autocomplete="off"><br> 
     32                                                        <input id="ea_maillist_uid" name="uid" size="35" value="{uid}" autocomplete="off" onblur="javascript:emailSuggestion_maillist();"><br> 
    3133                                                         
    3234                                                        {lang_maillist_mail}: <font color="blue">Ex: lista-celepar-rh@celepar.pr.gov.br</font> 
    33                                                         <input name="mail" size="35" value="{mail}" autocomplete="off"><br> 
     35                                                        <input id="ea_maillist_mail" name="mail" size="35" value="{mail}" autocomplete="off"><br> 
    3436                                                         
    3537                                                        {lang_maillist_name}:<br> 
     
    4042                                                         
    4143                                                        <b>{lang_maillist_users} (<font color=red>{user_count}</font>):</b><br> 
    42                                                         <select id="ea_select_usersInMaillist" name="members[]" style="width:400px; height:200px" multiple size="13">{ea_select_usersInMaillist}</select> 
     44                                                        <select id="ea_select_usersInMaillist" name="mailForwardingAddress[]" style="width:400px; height:200px" multiple size="13">{ea_select_usersInMaillist}</select> 
    4345                                                </td> 
    4446                                                 
     
    5153                                                 
    5254                                                <td valign="bottom" bgcolor="#DDDDDD"> 
    53                                                         Organizações:<br> 
    54                                                         <select name="org_context" id="ea_combo_org_maillists" onchange="javascript:get_available_users(this.value, ea_check_allUsers.checked);">{combo_org}</select> 
     55                                                        {lang_search_organization}:<br> 
     56                                                        <input type="text" id="organization_search" autocomplete="off" size=20 onKeyUp="javascript:search_organization(this.value, 'ea_combo_org_maillists');" onBlur="javascript:get_available_users(org_context.value, ea_check_allUsers.checked);"> 
     57                                                        <br> 
    5558                                                         
     59                                                        {lang_organizations}:<br> 
     60                                                        <select name="org_context" id="ea_combo_org_maillists" onchange="javascript:get_available_users(this.value, ea_check_allUsers.checked);">{combo_all_orgs}</select> 
    5661                                                        <br> 
    5762                                                        <input type="checkbox" name="ea_check_allUsers" id="ea_check_allUsers" onclick="javascript:get_available_users(org_context.value, this.checked);">{lang_all_users}. 
    5863                                                        <br><br> 
    5964                                                         
    60                                                         Procurar usuário:<br> 
     65                                                        {lang_search_user}:<br> 
    6166                                                        <input id="ea_input_searchUser" size="35" autocomplete="off" onkeyup="javascript:optionFinderTimeout(this)"><br> 
    6267                                                         
  • trunk/expressoAdmin1_2/templates/default/managers_form.tpl

    r108 r180  
    88         
    99        <input type=hidden name="type" value="{type}"> 
    10         <input type=hidden name="old_manager_lid" value="{old_manager_lid}"> 
    11         <input type=hidden name="old_context" value="{old_context}"> 
     10        <input type=hidden name="hidden_manager_lid" value="{hidden_manager_lid}"> 
    1211        <input type=hidden name="context"> 
    1312     
     
    1716                                <td colspan="2"> 
    1817                                <input type="button" value="{lang_back}" onclick="javascript:location.href='index.php?menuaction=expressoAdmin1_2.uimanagers.list_managers'"> 
    19                                 <input type="button" value="{lang_save}" onclick="javascript:validade_managers_data();"> 
     18                                <input type="button" value="{lang_save}" onclick="javascript:validade_managers_data('{type}');"> 
    2019                                </td> 
    2120                        </tr> 
     
    2625                                        </tr>                            
    2726                                <tr bgcolor="{color_font1}"> 
    28                                         <td width="25%">{lang_manager_lid}:</td> 
    29                                                 <td ><input type="text" name="manager_lid" value="{manager_lid}" size=30></input></td> 
     27                                        <td width="25%">{lang_search_for_manager}:</td> 
     28                                                <td> 
     29                                                        <input type="text" id="manager_lid" {input_manager_lid_disabled} name="manager_lid" value="{manager_lid}" size=30 autocomplete="off" onkeyup="javascript:search_manager(this.value)"></input> 
     30                                                        <font color="red"><span id="ea_span_searching_manager">&nbsp;</span></font> 
     31                                                </td> 
     32                                        </tr> 
     33                                         
     34                                        <tr bgcolor="{color_font1}" style="display:{display_manager_select}"> 
     35                                                <td width="25%">{lang_found_managers}:</td> 
     36                                                <td> 
     37                                                        <select id="ea_select_managers" name="ea_select_manager" style="width: 400px" size="10">{ea_select_managers}</select> 
     38                                                </td> 
    3039                                        </tr> 
    3140                                    <tr bgcolor="{color_font2}"> 
    3241                                                <td>{lang_context}:</td> 
    3342                                                <td id="td_input_context"> 
    34                                                         <span style="cursor:pointer" onclick="javascript:add_input_context();"> +</span> 
     43                                                        <select id="ea_select_contexts">{options_contexts}</select> 
     44                                                        <span style="cursor:pointer" onclick="javascript:add_input_context();">+</span> 
    3545                                                        <br> 
     46                                                        <span id="ea_spam_warn" style="color:red">&nbsp;</span> 
    3647                                                        {input_context_fields} 
    3748                                                </td> 
    38                                 </tr>                        
     49                                </tr> 
    3950                                        <tr bgcolor="{color_bg2}"> 
    4051                                                <td colspan="2"><b>Informações da ACL</b></td> 
    4152                                        </tr> 
    4253 
    43                                         <tr><td colspan="2"><table> 
    44                                                                  
     54                                        <tr><td colspan="2"> 
     55                                         
    4556                                        <!-- BEGIN ACL CONTROL --> 
     57                                        <table id="ea_table_acl"> 
     58                                            <tr bgcolor="{color_font2}"> 
     59                                                        <td width="20%"><input type="button" value="Selecionar todos os direitos" onclick="select_all_acls('ea_table_acl');"></td> 
     60                                            </tr> 
    4661                                            <tr bgcolor="{color_font1}" align='right'> 
    4762                                                        <td width="20%">{lang_add_users}:</td> 
     
    139154                                                </tr> 
    140155                                                </table></td></tr>                                               
    141                                         <!-- END ACL CONTROL -->                                                 
     156                                        <!-- END ACL CONTROL --> 
     157                                         
    142158                                         
    143159                                        <tr bgcolor="{color_bg2}"> 
    144160                                          <td colspan="4"><b>Seleção de Aplicativos disponíveis para o Gerente.</b></td> 
    145161                                        </tr> 
    146                                         <table border="0" width="100%"> 
     162                                        <table id="ea_table_app"> 
     163                                                <tr bgcolor="{color_font2}"> 
     164                                                        <td width="20%"><input type="button" value="Selecionar todos os aplicativos" onclick="select_all_acls('ea_table_app');"></td> 
     165                                            </tr> 
    147166                                                <tr> 
    148167                                                        {app_list} 
     
    151170                                        <tr bgcolor={color_bg1} align="left"> 
    152171                                                <td> 
    153                                                         <input type="button" value="{lang_save}" onclick="javascript:validade_managers_data();"> 
     172                                                        <input type="button" value="{lang_save}" onclick="javascript:validade_managers_data('{type}');"> 
    154173                                                        <input type="button" value="{lang_back}" onclick="javascript:location.href='index.php?menuaction=expressoAdmin1_2.uimanagers.list_managers'"> 
    155174                                                </td> 
Note: See TracChangeset for help on using the changeset viewer.