diff -Nur smeserver-gitweb-1.0.0.old/root/etc/e-smith/templates/etc/gitweb.conf/60ExportAuthHook smeserver-gitweb-1.0.0/root/etc/e-smith/templates/etc/gitweb.conf/60ExportAuthHook --- smeserver-gitweb-1.0.0.old/root/etc/e-smith/templates/etc/gitweb.conf/60ExportAuthHook 2016-06-22 13:57:51.369000000 -0400 +++ smeserver-gitweb-1.0.0/root/etc/e-smith/templates/etc/gitweb.conf/60ExportAuthHook 2016-06-22 14:00:02.811000000 -0400 @@ -129,9 +129,16 @@ # See who the effective users are for this repository. The AccountsDB needs # to have world read permissions to allow this to work. - my $effective_pull_users = $git_db->effective_users_list_from( $properties\{'pull_groups'\}, - $properties\{'pull_users'\} ); - if( grep( /^@http_digest[0]$/, split( / / , $effective_pull_users ) ) ) \{ + my @pulled_user_groups; + for my $ggroup (split(',',$properties\{'pull_groups'\})) + \{ + my ($name,$passwd,$gid,$members)=getgrnam($ggroup); + push @pulled_user_groups , split(' ',$members); + \} + push @pulled_user_groups, split(',',$properties\{'pull_users'\}); + @pulled_user_groups = do \{ my %seen; grep \{ !$seen\{$_\}++ \} @pulled_user_groups \}; + + if( grep( /^@http_digest[0]$/, @pulled_user_groups ) ) \{ # USER IN AUTHORISED LIST -> CHECK PASSWORD if( trypass( @http_digest[0], @http_digest[1] ) == 0 ) \{ return 1; # EXIT USER IS AUTHORISED -> REPOSITORY VIEW ALLOWED