Changeset 1984


Ignore:
Timestamp:
02/05/10 10:13:27 (14 years ago)
Author:
valmir.sena
Message:

Ticket #882 - Falha ao tentar criar uma conta compartilhada no IE

Location:
branches/2.1/expressoAdmin1_2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/2.1/expressoAdmin1_2/inc/class.imap_functions.inc.php

    r1913 r1984  
    345345            $owners_acl_old = $this->getaclfrombox($params); 
    346346            //new settings 
    347             $owners_acl_new = unserialize($params['owners_acl']); 
     347            //necessario devido a um bug do serialize do javascript do connector zera uma string 
     348            //serializada "N;", diferente da serializada do php "a:0:{}" 
     349             
     350            if( $params['owners_acl'] != "N;" ){ 
     351                $owners_acl_new = unserialize($params['owners_acl']); 
     352            } else { 
     353                $owners_acl_new = Array(); 
     354            } 
    348355 
    349356            $owners_to_remove = array_diff_assoc($owners_acl_old,$owners_acl_new); 
    350357            $owners_to_add = array_diff_assoc($owners_acl_new,$owners_acl_old); 
    351  
     358                         
    352359            //Find modified users 
    353360            $tmp_update = array_diff_assoc($owners_acl_old,$owners_to_remove); 
     
    363370            if( (count($owners_to_remove) > 0 || count($owners_to_add) > 0 || count($owners_to_update) > 0) && !$this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_shared_accounts_acl') ){ 
    364371                $result['status'] = false; 
    365                 $result['msg'] = $this->functions->lang('You do not have access to edit an shared account inbox acl'); 
    366                 return $result; 
    367             } 
    368              
     372                                $result['msg'] = $this->functions->lang('You do not have access to edit an shared account inbox acl'); 
     373                                return $result; 
     374            } 
     375            file_put_contents("/tmp/saida", "old ".print_r($owners_acl_old, true)."remove ".print_r($owners_to_remove, true)."add ".print_r($owners_to_add, true)."update ".print_r($owners_to_update, true)); 
    369376            if( is_array($owners_acl_new)){ 
    370377                foreach($owners_to_remove as $user => $acl){ 
    371378                    $params['user'] = $user; 
    372                     $params['acl'] = "none"; 
    373                     $user = $params['user']; 
    374                     $result = $this->setaclfrombox($user,"none",$params['uid']); 
     379                    $params['acl'] = ""; 
     380                    $user = $params['user'];                   
     381                    $result = $this->setaclfrombox($user,"",$params['uid']); 
    375382                } 
    376383                //add new users 
  • branches/2.1/expressoAdmin1_2/inc/class.shared_accounts.inc.php

    r1913 r1984  
    108108                        $return['display_empty_inbox'] = $this->functions->check_acl($_SESSION['phpgw_session']['session_lid'],'empty_shared_accounts_inbox') ? 'block' : 'none'; 
    109109                        $return['allow_edit_shared_account_acl'] = $this->functions->check_acl($_SESSION['phpgw_session']['session_lid'],'edit_shared_accounts_acl'); 
    110                         $return['mailquota_used'] = $quota['mailquota_used']; 
    111                         //print_r(      $owners_acl); 
     110                        $return['mailquota_used'] = $quota['mailquota_used'];                         
    112111                        $i = 0; 
    113                         foreach($owners_acl as $key => $value) 
    114                         { 
    115                                 $cn = $this->ldap_functions->uid2cn($key); 
    116                                 $return['owners_options'] .= '<option value='. $key .'>' . $cn . '</option>'; 
    117                                 $return['owners'][$i] .= $key; 
    118                                 $return['owners_acl'][$i] .= $value; 
    119                                 $i++; 
    120                         } 
     112                        if( is_array($owners_acl) ){ 
     113                                foreach($owners_acl as $key => $value) 
     114                                { 
     115                                        $cn = $this->ldap_functions->uid2cn($key); 
     116                                        $return['owners_options'] .= '<option value='. $key .'>' . $cn . '</option>'; 
     117                                        $return['owners'][$i] .= $key; 
     118                                        $return['owners_acl'][$i] .= $value; 
     119                                        $i++; 
     120                                } 
     121                        } else { 
     122                                $return['owners_options'] = false; 
     123                                $return['owners'] = false; 
     124                                $return['owners_acl'] = false; 
     125                        }                         
    121126                        return $return; 
    122127                } 
  • branches/2.1/expressoAdmin1_2/js/jscode/shared_accounts.js

    r1915 r1984  
    190190        { 
    191191                select_owners.innerHTML = "&nbsp;" + new_options + select_owners.innerHTML; 
    192                 select_owners.outerHTML = select_owners.outerHTML; 
    193                 select_owners.options[0].selected = true; 
    194                 Element('em_input_readAcl').checked = false; 
     192                select_owners.outerHTML = select_owners.outerHTML;               
     193        Element('em_input_readAcl').checked = false; 
    195194                Element('em_input_deleteAcl').checked = false; 
    196195                Element('em_input_writeAcl').checked = false; 
    197196                Element('em_input_sendAcl').checked = false; 
    198                 Element('em_input_sendAcl').disabled = true; 
     197        Element('em_input_sendAcl').disabled = true; 
     198        select_owners = Element('ea_select_owners'); 
     199        select_owners.options[0].selected = true; 
    199200        } 
    200201} 
     
    209210                        select_owners.options[i--] = null; 
    210211                } 
    211        if(select_owners.options.length > 1 ){ 
     212                //Nova chamada a "Element" é Necessária devido a um bug do ie com select 
     213           select_owners = Element('ea_select_owners'); 
     214       if(select_owners.options.length > 0 ){ 
    212215            select_owners.options[0].selected = true; 
    213216            var user = select_owners.options[0].value; 
     
    275278                        Element('cn').value = data.cn; 
    276279                        Element('mail').value = data.mail; 
    277                         Element('mailquota').value = data.mailquota; 
    278                         Element('mailquota_used').value = data.mailquota_used; 
    279                         Element('quota_used_field').style.display = 'inline'; 
    280                         Element('description').value = data.description; 
    281                         Element('ea_select_owners').innerHTML = data.owners_options; 
    282                         Element('display_empty_inbox').style.display = data.display_empty_inbox; 
    283                         if( data.allow_edit_shared_account_acl == "0"){ 
    284                             Element('bt_add_user').disabled = true; 
    285                             Element('bt_remove_user').disabled = true; 
    286                             Element('em_input_readAcl').disabled = true; 
    287                             Element('em_input_deleteAcl').disabled = true; 
    288                             Element('em_input_writeAcl').disabled = true; 
    289                             Element('em_input_sendAcl').disabled = true; 
    290                             Element('em_input_saveAcl').disabled = true; 
    291                         } 
     280            Element('mailquota').value = data.mailquota; 
     281            Element('mailquota_used').value = data.mailquota_used; 
     282            Element('quota_used_field').style.display = 'inline'; 
     283            Element('desc').value = data.description; 
     284            //Necessario, pois o IE6 tem um bug que não exibe as novas opções se o innerHTML estava vazio 
     285            Element('ea_select_owners').innerHTML = '&nbsp;' + data.owners_options; 
     286            Element('ea_select_owners').outerHTML = Element('ea_select_owners').outerHTML; 
     287 
     288            Element('display_empty_inbox').style.display = data.display_empty_inbox; 
     289            if( data.allow_edit_shared_account_acl == "0"){ 
     290                Element('bt_add_user').disabled = true; 
     291                Element('bt_remove_user').disabled = true; 
     292                Element('em_input_readAcl').disabled = true; 
     293                Element('em_input_deleteAcl').disabled = true; 
     294                Element('em_input_writeAcl').disabled = true; 
     295                Element('em_input_sendAcl').disabled = true; 
     296                Element('em_input_saveAcl').disabled = true; 
     297            } 
    292298 
    293299                        sinc_combos_org(data.user_context); 
    294300                        sharemailbox.ownersAcl = new Array(); 
    295                         for (i=0; i<data.owners.length; i++){ 
    296                                         sharemailbox.ownersAcl[ data.owners[i] ] = data.owners_acl[i];   
    297                         } 
     301            if( data.owners != "undefined" && data.owners_acl != "undefined" ){  
     302                                for (i=0; i<data.owners.length; i++){ 
     303                                                sharemailbox.ownersAcl[ data.owners[i] ] = data.owners_acl[i];   
     304                                } 
     305            } 
    298306                } 
    299307                else 
  • branches/2.1/expressoAdmin1_2/templates/default/shared_accounts_modal.tpl

    r1916 r1984  
    66<input type="hidden" id="{modal_id}_save_action" value="save_shared_accounts()"> 
    77<input type="hidden" id="{modal_id}_onload_action" value="set_onload({manager_context})"> 
    8 <form enctype="multipart/form-data" name="shared_accounts_form" method="post"> 
     8<form enctype="multipart/form-data" name="shared_accounts_form_template" method="post"> 
    99<input type="hidden" id="anchor" name="anchor"> 
    1010<input type="hidden" id="owners_acls" name="owners_acl" value=""> 
     
    2525 
    2626                        {lang_description}: 
    27                         <input id="description" name="description" size="42" autocomplete="off"><br> 
     27                        <input id="desc" name="desc" size="42" autocomplete="off"><br> 
    2828                        {lang_Email_quota_in_MB}: 
    2929                        <input type="text" id="mailquota" name="mailquota" autocomplete="off" value="{mailquota}" {changequote_disabled} {disabled} size=16><br> 
    3030                        <spam  id='quota_used_field' name='quota_used_field' style="display:{display_quota_used}">{lang_quota_used_in_mb}: 
    3131                        <input type="text" name="mailquota_used" id="mailquota_used" value="{mailquota_used}" disabled size=10><br></spam> 
    32                         <spam id='display_empty_inbox' name='display_empty_inbox' style="display:none"><input type='button' {disabled} {disabled_empty_inbox} value='{lang_empty_inbox}' onclick="javascript:empty_inbox(anchor.value);"><br></spam> 
     32                        <div id='display_empty_inbox' name='display_empty_inbox' style="display:none"><input type='button' {disabled} {disabled_empty_inbox} value='{lang_empty_inbox}' onclick="javascript:empty_inbox(anchor.value);"><br></div> 
    3333                                                         
    3434                        {lang_is_account_active}: <input type="checkbox" id="accountStatus" name="accountStatus" checked><br> 
Note: See TracChangeset for help on using the changeset viewer.