Changeset 5133 for trunk/expressoAdmin1_2/inc/class.functions.inc.php
- Timestamp:
- 11/03/11 13:24:14 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoAdmin1_2/inc/class.functions.inc.php
r3887 r5133 43 43 function check_acl($account_lid, $access) 44 44 { 45 $acl = $this->read_acl($account_lid); 46 $array_acl = $this->make_array_acl($acl['acl']); 45 46 47 $array_acl = $this->db_functions->read_acl($account_lid); 47 48 48 49 switch($access) 49 50 { 50 51 case list_users: 51 if ($array_acl[ acl_add_users] || $array_acl[acl_edit_users] || $array_acl[acl_delete_users] || $array_acl[acl_change_users_password] || $array_acl[acl_change_users_quote] || $array_acl[acl_edit_sambausers_attributes] || $array_acl[acl_view_users] || $array_acl[acl_manipulate_corporative_information] || $array_acl[acl_edit_users_phonenumber] )52 if ($array_acl['acl_add_users'] || $array_acl['acl_edit_users'] || $array_acl['acl_delete_users'] || $array_acl['acl_change_users_password'] || $array_acl['acl_change_users_quote'] || $array_acl['acl_edit_sambausers_attributes'] || $array_acl['acl_view_users'] || $array_acl['acl_manipulate_corporative_information'] || $array_acl['acl_edit_users_phonenumber'] ) 52 53 return true; 53 54 break; 54 55 case list_groups: 55 if ($array_acl[ acl_add_groups] || $array_acl[acl_edit_groups] || $array_acl[acl_delete_groups])56 if ($array_acl['acl_add_groups'] || $array_acl['acl_edit_groups'] || $array_acl['acl_delete_groups']) 56 57 return true; 57 58 break; 58 59 case list_maillists: 59 if ($array_acl[ acl_add_maillists] || $array_acl[acl_edit_maillists] || $array_acl[acl_delete_maillists])60 if ($array_acl['acl_add_maillists'] || $array_acl['acl_edit_maillists'] || $array_acl['acl_delete_maillists']) 60 61 return true; 61 62 break; 62 63 case list_sectors: 63 if ($array_acl[ acl_create_sectors] || $array_acl[acl_edit_sectors] || $array_acl[acl_delete_sectors])64 if ($array_acl['acl_create_sectors'] || $array_acl['acl_edit_sectors'] || $array_acl['acl_delete_sectors']) 64 65 return true; 65 66 break; 66 67 case list_computers: 67 if ($array_acl[ acl_create_computers] || $array_acl[acl_edit_computers] || $array_acl[acl_delete_computers])68 if ($array_acl['acl_create_computers'] || $array_acl['acl_edit_computers'] || $array_acl['acl_delete_computers']) 68 69 return true; 69 70 break; 70 71 71 72 case display_groups: 72 if ( $array_acl[ acl_edit_users] || $array_acl[acl_view_users] || ($array_acl[acl_edit_sambausers_attributes] && ($this->current_config['expressoAdmin_samba_support'] == 'true')) )73 if ( $array_acl['acl_edit_users'] || $array_acl['acl_view_users'] || ($array_acl['acl_edit_sambausers_attributes'] && ($this->current_config['expressoAdmin_samba_support'] == 'true')) ) 73 74 return true; 74 75 break; 75 76 case display_emailconfig: 76 if ($array_acl[ acl_edit_users] || $array_acl[acl_view_users])77 if ($array_acl['acl_edit_users'] || $array_acl['acl_view_users']) 77 78 return true; 78 79 break; 79 80 case display_applications: 80 if ($array_acl[ acl_edit_users] || $array_acl[acl_view_users])81 if ($array_acl['acl_edit_users'] || $array_acl['acl_view_users']) 81 82 return true; 82 83 break; 83 84 case display_emaillists: 84 if ($array_acl[ acl_edit_users] || $array_acl[acl_view_users])85 if ($array_acl['acl_edit_users'] || $array_acl['acl_view_users']) 85 86 return true; 86 87 break; 87 88 88 89 case list_institutional_accounts: 89 if ($array_acl[ acl_add_institutional_accounts] || $array_acl[acl_edit_institutional_accounts] || $array_acl[acl_delete_institutional_accounts])90 if ($array_acl['acl_add_institutional_accounts'] || $array_acl['acl_edit_institutional_accounts'] || $array_acl['acl_delete_institutional_accounts']) 90 91 return true; 91 92 break; 92 93 case list_shared_accounts: 93 if ($array_acl[acl_add_shared_accounts] || $array_acl[acl_edit_shared_accounts] || $array_acl[acl_delete_shared_accounts]) 94 return true; 95 break; 96 94 if ($array_acl['acl_add_shared_accounts'] || $array_acl['acl_edit_shared_accounts'] || $array_acl['acl_delete_shared_accounts']) 95 return true; 96 break; 97 case configurations: 98 if ($array_acl['acl_active_blocking_sending_email_to_shared_accounts'] || $array_acl['acl_add_blocking_sending_email_to_shared_accounts_exception'] || $array_acl['acl_edit_and_remove_blocking_sending_email_to_shared_accounts_exception'] || $array_acl['acl_edit_maximum_number_of_recipients_generally'] || $array_acl['acl_add_maximum_number_of_recipients_by_user'] || $array_acl['acl_edit_and_remove_maximum_number_of_recipients_by_user'] || $array_acl['acl_add_maximum_number_of_recipients_by_group'] || $array_acl['acl_edit_and_remove_maximum_number_of_recipients_by_group']) 99 return true; 100 break; 101 case messages_size: 102 if($array_acl['acl_add_messages_size_rule'] || $array_acl['acl_edit_messages_size_rule'] || $array_acl['acl_remove_messages_size_rule']) 103 return true; 104 break; 97 105 98 106 default: … … 282 290 { 283 291 $acl = $this->db_functions->read_acl($account_lid); 284 285 $result['acl'] = $acl[0]['acl']; 286 $result['manager_lid'] = $acl[0]['manager_lid']; 287 $result['raw_context'] = $acl[0]['context']; 288 289 $all_contexts = split("%", $acl[0]['context']); 290 foreach ($all_contexts as $index=>$context) 291 { 292 $result['contexts'][] = $context; 293 $result['contexts_display'][] = str_replace(", ", ".", ldap_dn2ufn( $context )); 294 } 295 296 return $result; 297 } 298 299 // Make a array read humam 300 // Last acl: 2.147.483.648 -> edit users phonephone 301 // Last acl: 4.294.967.296 -> add institutional accounts 302 // Last acl: 8.589.934.592 -> edit institutional accounts 303 // Last acl: 17.179.869.184 -> remove institutional accounts 304 // Last acl: 34.359.738.368 -> add share accounts 305 // Last acl: 68.719.476.736 -> edit share accounts 306 // Last acl: 137.438.953.472 -> delete share accounts 307 // Last acl: 274.877.906.944 -> edit share accounts acl 308 // Last acl: 549.755.813.888 -> edit quota share quote 309 // Last acl: 1.099.511.627.776 -> empty share accounts inbox 310 311 function make_array_acl($acl) 312 { 313 $array_acl_tmp = array(); 314 $tmp = array( "acl_add_users", 315 "acl_edit_users", 316 "acl_delete_users", 317 "acl_EMPTY1", 318 "acl_add_groups", 319 "acl_edit_groups", 320 "acl_delete_groups", 321 "acl_change_users_password", 322 "acl_add_maillists", 323 "acl_edit_maillists", 324 "acl_delete_maillists", 325 "acl_EMPTY2", 326 "acl_create_sectors", 327 "acl_edit_sectors", 328 "acl_delete_sectors", 329 "acl_edit_sambausers_attributes", 330 "acl_view_global_sessions", 331 "acl_view_logs", 332 "acl_change_users_quote", 333 "acl_set_user_default_password", 334 "acl_create_computers", 335 "acl_edit_computers", 336 "acl_delete_computers", 337 "acl_rename_users", 338 "acl_edit_sambadomains", 339 "acl_view_users", 340 "acl_edit_email_groups", 341 "acl_empty_user_inbox", 342 "acl_manipulate_corporative_information", 343 "acl_edit_users_picture", 344 "acl_edit_scl_email_lists", 345 "acl_edit_users_phonenumber", 346 "acl_add_institutional_accounts", 347 "acl_edit_institutional_accounts", 348 "acl_remove_institutional_accounts", 349 "acl_add_shared_accounts", 350 "acl_edit_shared_accounts", 351 "acl_delete_shared_accounts", 352 "acl_edit_shared_accounts_acl", 353 "acl_edit_shared_accounts_quote", 354 "acl_empty_shared_accounts_inbox" 355 ); 356 357 foreach ($tmp as $index => $right) 358 { 359 $bin = ''; 360 for ($i=0; $i<$index; $i++) 361 { 362 $bin .= '0'; 363 } 364 $bin = '1' . $bin; 365 366 $array_acl[$right] = $this->safeBitCheck(bindec($bin), $acl); 367 } 368 return $array_acl; 369 } 292 return $acl; 293 } 294 370 295 371 296 function get_inactive_users($contexts) { … … 421 346 $justthese = array("uidnumber", "uid", "cn", "mail"); 422 347 $filter="(&(phpgwAccountType=u)(|(uid=*".$query."*)(sn=*".$query."*)(cn=*".$query."*)(givenName=*".$query."*)(mail=$query*)(mailAlternateAddress=$query*)))"; 423 $filter = preg_replace("/\*\*/","*",$filter); //Caso a query venha vazia, inibir a montagem do filtro com ** pois algumas versões do php mais recentes não corrigem isso no ldap_search 348 424 349 $tmp = array(); 425 350 foreach ($contexts as $index=>$context) … … 541 466 } 542 467 543 /* 544 Funciona de maneira similar ao get_sectors_list, porém retorna a propria OU do contexto 545 e monta o array de retorno de forma diferente, necessário para algumas mudanças implementadas 546 no método admin.uisectors.list_sectors. 547 */ 548 function get_organizations2($contexts, $selected='', $referral=false, $show_invisible_ou=true) { 549 468 function get_sectors($selected='', $referral=false, $show_invisible_ou=true) 469 { 470 $s = CreateObject('phpgwapi.sector_search_ldap'); 471 $sectors_info = $s->get_sectors($selected, $referral, $show_invisible_ou); 472 return $sectors_info; 473 } 474 475 // Get list of all levels, this function is used for sectors module. 476 function get_sectors_list($contexts) 477 { 478 $a_sectors = array(); 479 550 480 $dn = $GLOBALS['phpgw_info']['server']['ldap_root_dn']; 551 481 $passwd = $GLOBALS['phpgw_info']['server']['ldap_root_pw']; 552 482 $ldap_conn = ldap_connect($GLOBALS['phpgw_info']['server']['ldap_host']); 553 483 554 484 ldap_set_option($ldap_conn, LDAP_OPT_PROTOCOL_VERSION, 3); 555 556 if ($referral) 557 ldap_set_option($ldap_conn, LDAP_OPT_REFERRALS, 1); 558 else 559 ldap_set_option($ldap_conn, LDAP_OPT_REFERRALS, 0); 560 485 ldap_set_option($ldap_conn, LDAP_OPT_REFERRALS, 0); 561 486 ldap_bind($ldap_conn,$dn,$passwd); 562 487 563 $justthese = array("dn","diskQuota","usersQuota","actualDiskQuota"); 564 $filter = "(objectClass=organizationalUnit)"; 565 foreach ($contexts as $context) { 488 $justthese = array("dn"); 489 $filter = "(ou=*)"; 490 491 $systemName = strtolower($GLOBALS['phpgw_info']['server']['system_name']); 492 if ($systemName != '') 493 $filter = "(&$filter(phpgwSystem=$systemName))"; 494 495 foreach ($contexts as $context) 496 { 566 497 $search=ldap_search($ldap_conn, $context, $filter, $justthese); 567 568 ldap_sort($ldap_conn, $search, "ou"); 569 $info = ldap_get_entries($ldap_conn, $search); 570 ldap_close($ldap_conn); 571 572 // Retiro o count do array info e inverto o array para ordenaçãoo. 573 for ($i=0; $i<$info["count"]; $i++) 574 { 575 $dn = $info[$i]["dn"]; 576 577 // Necessário, pq em uma busca com ldapsearch objectClass=organizationalUnit, traz tb o próprio ou. 578 //if (strtolower($dn) == $context) 579 //continue; 580 581 $array_dn = ldap_explode_dn ( $dn, 1 ); 582 583 $array_dn_reverse = array_reverse ( $array_dn, true ); 584 585 // Retirar o indice count do array. 586 array_pop ( $array_dn_reverse ); 587 588 $inverted_dn[implode ( "#", $array_dn_reverse )] = $info[$i]; 589 } 590 } 591 // Ordenação por chave 592 ksort($inverted_dn); 498 $info = ldap_get_entries($ldap_conn, $search); 499 for ($i=0; $i<$info["count"]; $i++) 500 { 501 $a_sectors[] = $info[$i]['dn']; 502 } 503 } 504 505 ldap_close($ldap_conn); 506 507 // Retiro o count do array info e inverto o array para ordenação. 508 foreach ($a_sectors as $context) 509 { 510 511 512 $array_dn = ldap_explode_dn($context, 1 ); 513 foreach($array_dn as $key=>$value){ 514 $array_dn[$key]=preg_replace("/\\\([0-9A-Fa-f]{2})/e", "''.chr(hexdec('\\1')).''",$value); 515 } 516 517 $array_dn_reverse = array_reverse ( $array_dn, true ); 518 519 // Retirar o indice count do array. 520 array_pop ( $array_dn_reverse ); 521 522 $inverted_dn[$context] = implode ( "#", $array_dn_reverse ); 523 } 524 525 // Ordenação 526 natcasesort($inverted_dn); 593 527 594 528 // Construção do select 595 529 $level = 0; 596 530 $options = array(); 597 foreach ($inverted_dn as $dn=>$in fo_ou)531 foreach ($inverted_dn as $dn=>$invert_ufn) 598 532 { 599 533 $display = ''; 600 $info_retorno = array(); 601 $array_dn_reverse = explode ( "#", $ dn );534 535 $array_dn_reverse = explode ( "#", $invert_ufn ); 602 536 $array_dn = array_reverse ( $array_dn_reverse, true ); 603 537 … … 613 547 614 548 reset ( $array_dn ); 615 $display .= ' ' . (current ( $array_dn ) ); 616 617 $info_retorno['display'] = $display; 618 $info_retorno['dn'] = $info_ou['dn']; 619 $info_retorno['diskquota'] = $info_ou['diskquota'][0]; 620 $info_retorno['usersquota'] = $info_ou['usersquota'][0]; 621 // $info_retorno['actualdiskquota'] = round($this->get_actual_disk_usage($info_ou['dn']),2);//$info_ou['actualdiskquota'][0]; 622 // $info_retorno['actualnumusers'] = $this->get_num_users($info_ou['dn']); 623 624 array_push($options,$info_retorno); 625 626 } 627 return $options; 628 } 629 630 function get_info($context, $referral = false) { 631 $dn = $GLOBALS['phpgw_info']['server']['ldap_root_dn']; 632 $passwd = $GLOBALS['phpgw_info']['server']['ldap_root_pw']; 633 $ldap_conn = ldap_connect($GLOBALS['phpgw_info']['server']['ldap_host']); 634 635 ldap_set_option($ldap_conn, LDAP_OPT_PROTOCOL_VERSION, 3); 636 637 if ($referral) 638 ldap_set_option($ldap_conn, LDAP_OPT_REFERRALS, 1); 639 else 640 ldap_set_option($ldap_conn, LDAP_OPT_REFERRALS, 0); 641 642 ldap_bind($ldap_conn,$dn,$passwd); 643 644 $filter="(objectClass=organizationalUnit)"; 645 $search=ldap_search($ldap_conn, $context, $filter); 646 $result = ldap_get_entries($ldap_conn, $search); 647 return $result; 648 649 } 650 651 function get_num_users($context,$selected='', $referral=false, $show_invisible_ou=true) { 652 $dn = $GLOBALS['phpgw_info']['server']['ldap_root_dn']; 653 $passwd = $GLOBALS['phpgw_info']['server']['ldap_root_pw']; 654 $ldap_conn = ldap_connect($GLOBALS['phpgw_info']['server']['ldap_host']); 655 656 ldap_set_option($ldap_conn, LDAP_OPT_PROTOCOL_VERSION, 3); 657 658 if ($referral) 659 ldap_set_option($ldap_conn, LDAP_OPT_REFERRALS, 1); 660 else 661 ldap_set_option($ldap_conn, LDAP_OPT_REFERRALS, 0); 662 663 ldap_bind($ldap_conn,$dn,$passwd); 664 665 $justthese = array("dn"); 666 $filter = "(objectClass=inetOrgPerson)"; 667 $search=ldap_search($ldap_conn, $context, $filter, $justthese); 668 669 $retorno = ldap_count_entries($ldap_conn, $search); 670 ldap_close($ldap_conn); 671 672 return $retorno; 673 } 674 675 //Checa se existe quota para mais um usuï¿œrio no setor... se existir retorna true, senï¿œo false. 676 function existe_quota_usuario($setor) { 677 $num_users = $this->get_num_users($setor['dn']); 678 //return $num_users . " --- " . $setor['usersquota'][0] 679 if(($num_users>=$setor['usersquota'][0]) && ($setor['usersquota'][0]!=-1)) { 680 return false; 681 } 682 return true; 683 } 684 685 //Checa se existe quota em disco para mais um usuário no setor... se existir retorna true, senão false. 686 function existe_quota_disco($setor,$quota_novo_usuario) { 687 settype($quota_novo_usuario,"float"); 688 $quota_novo_usuario /= 1024; //A quota vêm da interface em megabytes, deve se tornar gigabyte. 689 690 $nova_quota = $this->get_actual_disk_usage($setor['dn']) + $quota_novo_usuario; 691 if(( $nova_quota >= $setor['diskquota'][0] ) && ($setor['diskquota'][0] != -1)) { 692 return false; 693 } 694 return true; 695 } 696 697 function has_file_disk_quota($home_directory,$quota) { 698 $uid = substr($home_directory,strpos($home_directory,"/home/")+6); 699 $context = $this->get_ou_context_from_uid($uid); 700 701 $sector = $this->get_info($context); 702 $new_quota = $this->get_actual_disk_usage($sector[0]['dn'],'FileManager',$uid) + $quota; 703 if(( $new_quota > $sector[0]['filemanagerquota'][0] ) && ($sector[0]['filemanagerquota'][0] != -1)) { 704 return false; 705 } 706 return true; 707 } 708 709 function get_ou_context_from_uid($uid,$referral = false) { 710 $dn = $GLOBALS['phpgw_info']['server']['ldap_root_dn']; 711 $passwd = $GLOBALS['phpgw_info']['server']['ldap_root_pw']; 712 $ldap_conn = ldap_connect($GLOBALS['phpgw_info']['server']['ldap_host']); 713 $context = $GLOBALS['phpgw_info']['server']['ldap_context']; 714 715 ldap_set_option($ldap_conn, LDAP_OPT_PROTOCOL_VERSION, 3); 716 717 if ($referral) 718 ldap_set_option($ldap_conn, LDAP_OPT_REFERRALS, 1); 719 else 720 ldap_set_option($ldap_conn, LDAP_OPT_REFERRALS, 0); 721 722 ldap_bind($ldap_conn,$dn,$passwd); 723 $filter="(&(objectClass=phpgwAccount)(uid=$uid))"; 724 $search=ldap_search($ldap_conn, $context, $filter); 725 $result = ldap_get_entries($ldap_conn, $search); 726 727 if($result['count']>0){ 728 $dn = $result[0]['dn']; 729 return substr($dn,strpos($dn,$uid.",")+strlen($uid.",")); 730 } 731 else 732 return false; 733 } 734 735 // Soma as quotas de todos os usuï¿œrios daquele contexto. 736 function get_actual_disk_usage($context,$app='expressoMail',$user=null) { 737 $quota_usada=0; 738 $contexts = array($context); 739 $usuarios = $this->get_list('accounts', '', $contexts); 740 741 if($app=='expressoMail') { 742 $imap_functions = new imap_functions(); 743 foreach($usuarios as $usuario) { 744 $temp = $imap_functions->get_user_info($usuario['account_lid']); 745 if($temp['mailquota'] != -1) //Usuï¿œrio sem cota nï¿œo conta... 746 $quota_usada += ($temp['mailquota'] / 1024); 747 } 748 } 749 else if($app=='FileManager'){ //FileManager 750 $uids = ''; 751 foreach($usuarios as $usuario) { 752 if($usuario['account_lid']!=$user) 753 $uids.="'/home/".$usuario['account_lid']."',"; 754 } 755 $uids.="'a'"; //hack the last comma 756 $query = "select 1 as num,sum(quota_size) as quota from phpgw_vfs_quota where directory in ($uids) group by num"; 757 $GLOBALS['phpgw']->db->query($query); 758 if($GLOBALS['phpgw']->db->next_record()) 759 { 760 $result = $GLOBALS['phpgw']->db->row(); 761 $quota_usada = $result["quota"]; 762 } 763 } 764 return $quota_usada; 765 } 766 767 function get_sectors($selected='', $referral=false, $show_invisible_ou=true) 768 { 769 $s = CreateObject('phpgwapi.sector_search_ldap'); 770 $sectors_info = $s->get_sectors($selected, $referral, $show_invisible_ou); 771 return $sectors_info; 772 } 773 774 // Get list of all levels, this function is used for sectors module. 775 function get_sectors_list($contexts) 776 { 777 $a_sectors = array(); 778 779 $dn = $GLOBALS['phpgw_info']['server']['ldap_root_dn']; 780 $passwd = $GLOBALS['phpgw_info']['server']['ldap_root_pw']; 781 $ldap_conn = ldap_connect($GLOBALS['phpgw_info']['server']['ldap_host']); 782 783 ldap_set_option($ldap_conn, LDAP_OPT_PROTOCOL_VERSION, 3); 784 ldap_set_option($ldap_conn, LDAP_OPT_REFERRALS, 0); 785 ldap_bind($ldap_conn,$dn,$passwd); 786 787 $justthese = array("dn"); 788 $filter = "(objectClass=organizationalUnit)"; 789 790 $systemName = strtolower($GLOBALS['phpgw_info']['server']['system_name']); 791 if ($systemName != '') 792 $filter = "(&$filter(phpgwSystem=$systemName))"; 793 794 foreach ($contexts as $context) 795 { 796 $search=ldap_search($ldap_conn, $context, $filter, $justthese); 797 $info = ldap_get_entries($ldap_conn, $search); 798 for ($i=0; $i<$info["count"]; $i++) 799 { 800 $a_sectors[] = $info[$i]['dn']; 801 } 802 } 803 804 ldap_close($ldap_conn); 805 806 // Retiro o count do array info e inverto o array para ordenação. 807 foreach ($a_sectors as $context) 808 { 809 $array_dn = ldap_explode_dn ( $context, 1 ); 810 811 $array_dn_reverse = array_reverse ( $array_dn, true ); 812 813 // Retirar o indice count do array. 814 array_pop ( $array_dn_reverse ); 815 816 $inverted_dn[$context] = implode ( "#", $array_dn_reverse ); 817 } 818 819 // Ordenação 820 natcasesort($inverted_dn); 821 822 // Construção do select 823 $level = 0; 824 $options = array(); 825 foreach ($inverted_dn as $dn=>$invert_ufn) 826 { 827 $display = ''; 828 829 $array_dn_reverse = explode ( "#", $invert_ufn ); 830 $array_dn = array_reverse ( $array_dn_reverse, true ); 831 832 $level = count( $array_dn ) - (int)(count(explode(",", $GLOBALS['phpgw_info']['server']['ldap_context'])) + 1); 833 834 if ($level == 0) 835 $display .= '+'; 836 else 837 { 838 for ($i=0; $i<$level; $i++) 839 $display .= '---'; 840 } 841 842 reset ( $array_dn ); 843 $display .= ' ' . (current ( $array_dn ) ); 549 $display .= ' ' . (current ( $array_dn )); 844 550 845 551 $dn = trim(strtolower($dn)); … … 903 609 else 904 610 return $groups_id; 905 }906 function make_list_personal_data_fields($account_lid, $acl = '')907 {908 // Sem restrição nenhuma na edição dos campos pessoais => $acl=0;909 // Com restrição apenas na edição do Tel. Comercial => $acl=1;910 // Com restrição apenas na edição do Tel. Celular => $acl=2;911 // Com restrição na edição do Tel. Comercial e Celular => $acl=3;912 // Com restricao apenas na edicao do Tel. Residencial => $acl=4;913 // ....914 // Com restricao de edição em todos os campos pessoais => $acl=7;915 916 $personal_data_fields = array(917 array("text" => lang("%1 telephone number", lang("Commercial")) , "acl" => 1),918 array("text" => lang("%1 telephone number", lang("Mobile")) , "acl" => 2),919 array("text" => lang("%1 telephone number", lang("Home Phone")) , "acl" => 4),920 array("text" => lang("Birthday") , "acl" => 8));921 $list_personal_data = "<tr>";922 923 foreach($personal_data_fields as $i => $data_field) {924 $checked = ($data_field['acl'] & $acl) ? "CHECKED" : "";925 $list_personal_data .= "<td align=right bgcolor='#DDDDDD'>{$data_field['text']}</td>".926 "<td bgcolor='#DDDDDD' width='10'><input type='checkbox' name='acl_block_personal_data[]'".927 " value='{$data_field['acl']}' $checked></td>";928 }929 $list_personal_data .= "</tr>";930 return $list_personal_data;931 611 } 932 612 … … 1116 796 return $array_langs; 1117 797 } 798 799 800 801 function normalize_calendar_acl($acl) 802 { 803 $return = ''; 804 805 if($this->safeBitCheck(1, $acl)) 806 $return .= '1-'; 807 if($this->safeBitCheck(2, $acl)) 808 $return .= '2-'; 809 if($this->safeBitCheck(4, $acl)) 810 $return .= '4-'; 811 if($this->safeBitCheck(8, $acl)) 812 $return .= '8-'; 813 if($this->safeBitCheck(16, $acl)) 814 $return .= '16-'; 815 816 return $return; 1118 817 } 818 } 1119 819 1120 820 class sectors_object
Note: See TracChangeset
for help on using the changeset viewer.