Ignore:
Timestamp:
May 25, 2014, 6:52:42 PM (10 years ago)
Author:
22decembre
Message:

add function to sync ldap and piwigo groups
ldap groups correspond to webmasters and admin roles

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/Ldap_Login/admin/configuration.php

    r27284 r28534  
    1212$me = new Ldap();
    1313$me->load_config();
     14$me->ldap_conn();
    1415//$me = get_plugin_data($plugin_id);
    1516
    1617$template->assign('HOST',       $me->config['host']);
    1718$template->assign('BASEDN',     $me->config['basedn']); // racine !
     19$template->assign('USERSBRANCH',$me->config['usersbranch']);
     20$template->assign('GROUPBRANCH',$me->config['groupbranch']);
     21$template->assign('LD_SEARCH_USERS',$me->config['ld_search_users']);
     22$template->assign('LD_SEARCH_GROUPS',$me->config['ld_search_groups']);
    1823$template->assign('PORT',       $me->config['port']);
    1924$template->assign('LD_ATTR',    $me->config['ld_attr']);
     25$template->assign('LD_GROUP',   $me->config['ld_group']);
    2026$template->assign('LD_USE_SSL', $me->config['ld_use_ssl']);
    2127$template->assign('LD_BINDPW',  $me->config['ld_bindpw']);
    2228$template->assign('LD_BINDDN',  $me->config['ld_binddn']);
     29$template->assign('WEBMASTERS_GROUP',   $me->config['webmasters_group']);
     30$template->assign('ADMINS_GROUP',       $me->config['admins_group']);
    2331
    2432if (isset($_POST['save'])){
    2533        $me->config['host']      = $_POST['HOST'];
    2634        $me->config['basedn']    = $_POST['BASEDN'];
     35        $me->config['usersbranch']    = $_POST['USERSBRANCH'];
     36        $me->config['groupbranch']    = $_POST['GROUPBRANCH'];
    2737        $me->config['port']      = $_POST['PORT'];
    2838        $me->config['ld_attr']   = $_POST['LD_ATTR'];
     39        $me->config['ld_group']   = $_POST['LD_GROUP'];
    2940        $me->config['ld_binddn'] = $_POST['LD_BINDDN'];
    3041        $me->config['ld_bindpw'] = $_POST['LD_BINDPW'];
     42       
     43        $me->config['webmasters_group'] = $_POST['WEBMASTERS_GROUP'];
     44        $me->config['admins_group'] = $_POST['ADMINS_GROUP'];
    3145
    3246        if (isset($_POST['LD_USE_SSL'])){
     
    3448        } else {
    3549                $me->config['ld_use_ssl'] = False;
     50        }
     51       
     52        if (isset($_POST['LD_SEARCH_GROUPS'])){
     53                $me->config['ld_search_groups'] = True;
     54        } else {
     55                $me->config['ld_search_groups'] = False;
     56        }
     57       
     58        if (isset($_POST['LD_SEARCH_USERS'])){
     59                $me->config['ld_search_users'] = True;
     60        } else {
     61                $me->config['ld_search_users'] = False;
    3662        }
    3763}
     
    4470// Check LDAP configuration
    4571if (isset($_POST['check_ldap'])){
    46 $check = $me->ldap_name($_POST['USERNAME']);
    47 $error = $me->check_ldap();
     72#$check = $me->ldap_name($_POST['USERNAME']);
     73#$error = $me->check_ldap();
    4874
    49         if ($me->ldap_bind_as($_POST['USERNAME'],$_POST['PASSWORD'])){
    50         $template->assign('LD_CHECK_LDAP','<p style="color:green;">Configuration LDAP OK : '.$check.'</p>');
     75        if ($me->config['users_group']) {
     76                if ($me->user_membership($_POST['USERNAME'],$me->ldap_group($me->config['users_group']))) {
     77                        if ($me->ldap_bind_as($_POST['USERNAME'],$_POST['PASSWORD'])){
     78                                // search groups
     79                                $group_query = 'SELECT name, id FROM '.GROUPS_TABLE.';';
     80                                $groups = pwg_query($group_query);
     81                                $sentence = '';
     82       
     83                                foreach($groups as $group) {
     84                                        if($me->user_membership($_POST['USERNAME'], $me->ldap_group($group['name']))) {
     85                                                $sentence = $sentence . ', '.$group['name'];
     86                                        }
     87                                }
     88                                $template->assign('LD_CHECK_LDAP','<p style="color:green;">Configuration LDAP OK : '.$_POST['USERNAME'].' is in users'.$sentence.' group(s) and can auth. He is a '.$me->ldap_status($_POST['USERNAME']).' user according to the plugin.</p>');
     89                        }
     90                        else {
     91                                $template->assign('LD_CHECK_LDAP','<p style="color:red;">Error : test '.$me->config['uri'].' '.$me->ldap_name($_POST['USERNAME']).'</p>');
     92                        }
     93                }
    5194        }
    5295        else {
    53         $template->assign('LD_CHECK_LDAP','<p style="color:red;">Error :'.$error.' test '.$me->config['uri'].' '.$check.'</p>');
     96                if ($me->ldap_bind_as($_POST['USERNAME'],$_POST['PASSWORD'])){
     97                        // search groups
     98                        $group_query = 'SELECT name, id FROM '.GROUPS_TABLE.';';
     99                        $groups = pwg_query($group_query);
     100                        $sentence = '';
     101       
     102                        foreach($groups as $group) {
     103                                if($me->user_membership($_POST['USERNAME'], $me->ldap_group($group['name']))) {
     104                                        $sentence = $sentence . ', '.$group['name'];
     105                                }
     106                        }
     107                        $template->assign('LD_CHECK_LDAP','<p style="color:green;">Configuration LDAP OK : '.$_POST['USERNAME'].' is in group(s) '.$sentence.' and can auth. He is a '.$me->ldap_status($_POST['USERNAME']).' user according to the plugin.</p>');
     108                }
     109                else {
     110                        $template->assign('LD_CHECK_LDAP','<p style="color:red;">Error : test '.$me->config['uri'].' '.$me->ldap_name($_POST['USERNAME']).'</p>');
     111                }
    54112        }
    55113}
Note: See TracChangeset for help on using the changeset viewer.