Changeset 6096


Ignore:
Timestamp:
05/04/12 10:50:42 (12 years ago)
Author:
marcieli
Message:

Ticket #2690 - Corrigido problema ao remover uma conta compartilhada com expressoCalendar.

Location:
trunk
Files:
3 edited

Legend:

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

    r5934 r6096  
    27182718                        for ($i=0; $i<$entries['count']; $i++) 
    27192719                        { 
    2720                                 $tr = "<tr class='normal' onMouseOver=this.className='selected' onMouseOut=this.className='normal'><td onClick=edit_shared_account('".$entries[$i]['uid'][0]."')>" . utf8_decode($entries[$i]['cn'][0]) . "</td><td onClick=edit_shared_account('".$entries[$i]['uid'][0]."')>" . utf8_decode($entries[$i]['cn'][0]). " (" . $entries[$i]['uid'][0] . ")" . "</td><td onClick=edit_shared_account('".$entries[$i]['uid'][0]."')>" . $entries[$i]['mail'][0] . "<td align='center' onClick=delete_shared_accounts('".$entries[$i]['uid'][0]."')><img HEIGHT='16' WIDTH='16' src=./expressoAdmin1_2/templates/default/images/delete.png></td></tr>"; 
     2720                                $tr = "<tr class='normal' onMouseOver=this.className='selected' onMouseOut=this.className='normal'><td onClick=edit_shared_account('".$entries[$i]['uid'][0]."')>" . utf8_decode($entries[$i]['cn'][0]) . "</td><td onClick=edit_shared_account('".$entries[$i]['uid'][0]."')>" . utf8_decode($entries[$i]['cn'][0]). " (" . $entries[$i]['uid'][0] . ")" . "</td><td onClick=edit_shared_account('".$entries[$i]['uid'][0]."')>" . $entries[$i]['mail'][0] . "<td align='center' onClick=delete_shared_accounts('".$entries[$i]['uid'][0]."','".$entries[$i]['mail'][0]."')><img HEIGHT='16' WIDTH='16' src=./expressoAdmin1_2/templates/default/images/delete.png></td></tr>"; 
    27212721                                $trs[$tr] = utf8_decode($entries[$i]['cn'][0]); 
    27222722                        } 
  • trunk/expressoAdmin1_2/js/jscode/shared_accounts.js

    r6018 r6096  
    443443} 
    444444 
     445function callbackDelete(sharedUser){ 
     446 
     447    if(!!sharedUser && $.isArray(sharedUser)) 
     448        for(var i = 0; i < sharedUser.length; i++) 
     449            if(sharedUser[i].phpgwAccountType == 's'){ 
     450                sharedUser = sharedUser[i]; 
     451                break; 
     452            } 
     453         
     454        var signature = DataLayer.get('calendarSignature', { 
     455                filter: ['=','user', sharedUser.id] 
     456            }); 
     457         
     458        signature = $.isArray(signature) ? signature[0] : signature; 
     459         
     460        DataLayer.remove('calendarSignature', signature.id) 
     461        DataLayer.commit(); 
     462} 
     463 
    445464function calback(){ 
    446465    var sharedUser = DataLayer.get('user', { 
     
    527546 
    528547 
    529 function delete_shared_accounts(uid) 
     548function delete_shared_accounts(uid, mail) 
    530549{ 
    531550    if (!confirm(get_lang('Are you sure that you want to delete this shared account') + "?")) 
    532551        return; 
    533552         
     553        var user = {}; 
     554        if(sharemailbox.ownersExpressoCalendarAcl) 
     555                user =  DataLayer.get('user', { 
     556                        filter: ['=','mail',mail] 
     557                }); 
     558         
     559         
    534560    var handle_delete_shared_account = function(data_return) 
    535561    { 
     
    540566        else 
    541567        { 
     568                if(sharemailbox.ownersExpressoCalendarAcl){ 
     569                        callbackDelete(user); 
     570                } 
     571         
    542572            write_msg(get_lang('Shared account successful deleted') + '.', 'normal'); 
    543573            get_shared_accounts(Element('ea_shared_account_search').value); 
     
    545575        return; 
    546576    } 
     577         
     578         
     579         
    547580    cExecute ('$this.shared_accounts.delete&uid='+uid, handle_delete_shared_account); 
    548581} 
  • trunk/prototype/modules/calendar/interceptors/DBMapping.php

    r6066 r6096  
    759759 
    760760            if (!empty($schedulables)) 
    761                 Controller::deleteALL(array('concept' => 'schedulable'), null, array('filter' => array('IN', 'id', $schedulables))); 
     761                        Controller::deleteALL(array('concept' => 'schedulable'), null, array('filter' => array('IN', 'id', $schedulables))); 
    762762 
    763763            Controller::delete(array('concept' => 'calendar', 'id' => $signature['calendar'])); 
     764                 
     765                $permissions = Controller::find(array('concept' => 'calendarToPermission'), array('id'), array('filter' => array('=', 'calendar', $signature['calendar']))); 
     766 
     767                 
     768                 
     769                if($permissions && count($permissions) > 0){ 
     770                        $ids = array(); 
     771                        foreach($permissions as $key => $value) 
     772                                array_push($ids, $value['id']); 
     773                 
     774                        Controller::deleteALL(array('concept' => 'calendarToPermission'), null, array('filter' => array('IN', 'id', $ids))); 
     775                         
     776                } 
     777                 
     778                 
    764779        } 
    765780    } 
Note: See TracChangeset for help on using the changeset viewer.