mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-09-19 05:59:02 +00:00
allow admins to manually toggle the uniqueMember fix via config (fix #102)
This commit is contained in:
parent
ee0e5e6656
commit
364bbd1df5
@ -471,6 +471,7 @@ $c->admin_email ='calendar-admin@example.com';
|
|||||||
// "fullname" => "cn" ,
|
// "fullname" => "cn" ,
|
||||||
// "members" =>"memberUid"
|
// "members" =>"memberUid"
|
||||||
// ), //used to create the group based on the ldap properties
|
// ), //used to create the group based on the ldap properties
|
||||||
|
// 'group_member_dnfix' => true, // if your "members" field contains the full DN and needs to be truncated to just the uid
|
||||||
/** used to set default value for all users, will be overcharged by ldap if defined also in mapping_field **/
|
/** used to set default value for all users, will be overcharged by ldap if defined also in mapping_field **/
|
||||||
// 'default_value' => array("date_format_type" => "E","locale" => "fr_FR"),
|
// 'default_value' => array("date_format_type" => "E","locale" => "fr_FR"),
|
||||||
/** foreach key set start and length in the string provided by ldap
|
/** foreach key set start and length in the string provided by ldap
|
||||||
|
|||||||
@ -453,6 +453,7 @@ function sync_LDAP_groups(){
|
|||||||
if ( sizeof($ldap_groups_tmp) == 0 ) return;
|
if ( sizeof($ldap_groups_tmp) == 0 ) return;
|
||||||
|
|
||||||
$member_field = $mapping['members'];
|
$member_field = $mapping['members'];
|
||||||
|
$dnfix = isset($c->authenticate_hook['config']['group_member_dnfix']) && $c->authenticate_hook['config']['group_member_dnfix'];
|
||||||
|
|
||||||
foreach($ldap_groups_tmp as $key => $ldap_group){
|
foreach($ldap_groups_tmp as $key => $ldap_group){
|
||||||
$group_mapping = $ldap_group[$mapping['username']];
|
$group_mapping = $ldap_group[$mapping['username']];
|
||||||
@ -527,7 +528,7 @@ function sync_LDAP_groups(){
|
|||||||
Principal::cacheDelete('username', $group);
|
Principal::cacheDelete('username', $group);
|
||||||
$c->messages[] = sprintf(i18n('- adding users %s to group : %s'),join(',',$ldap_groups_info[$group][$mapping['members']]),$group);
|
$c->messages[] = sprintf(i18n('- adding users %s to group : %s'),join(',',$ldap_groups_info[$group][$mapping['members']]),$group);
|
||||||
foreach ( $ldap_groups_info[$group][$mapping['members']] as $member ){
|
foreach ( $ldap_groups_info[$group][$mapping['members']] as $member ){
|
||||||
if ( $member_field == 'uniqueMember' ) {
|
if ( $member_field == 'uniqueMember' || $dnfix ) {
|
||||||
list( $mem, $rest ) = explode(",", $member );
|
list( $mem, $rest ) = explode(",", $member );
|
||||||
$member = str_replace( 'uid=', '', $mem );
|
$member = str_replace( 'uid=', '', $mem );
|
||||||
}
|
}
|
||||||
@ -543,7 +544,7 @@ function sync_LDAP_groups(){
|
|||||||
foreach ( $groups_to_update as $group ){
|
foreach ( $groups_to_update as $group ){
|
||||||
$db_members = array_values ( $db_group_members[$group] );
|
$db_members = array_values ( $db_group_members[$group] );
|
||||||
$ldap_members = array_values ( $ldap_groups_info[$group][$member_field] );
|
$ldap_members = array_values ( $ldap_groups_info[$group][$member_field] );
|
||||||
if ( $member_field == 'uniqueMember' ) {
|
if ( $member_field == 'uniqueMember' || $dnfix ) {
|
||||||
$ldap_members = fix_unique_member( $ldap_members );
|
$ldap_members = fix_unique_member( $ldap_members );
|
||||||
}
|
}
|
||||||
$add_users = array_diff ( $ldap_members, $db_members );
|
$add_users = array_diff ( $ldap_members, $db_members );
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user