This is an automated email from the ASF dual-hosted git repository.

sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git


The following commit(s) were added to refs/heads/master by this push:
     new 0e6acc34 Stub out LDAP search
0e6acc34 is described below

commit 0e6acc3455fdcb3a7db342403046a81f871adfd3
Author: Sebb <[email protected]>
AuthorDate: Mon May 15 11:41:34 2023 +0100

    Stub out LDAP search
---
 www/board/agenda/spec/secretary_spec.rb |  2 +-
 www/board/agenda/spec/spec_helper.rb    | 42 +++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/www/board/agenda/spec/secretary_spec.rb 
b/www/board/agenda/spec/secretary_spec.rb
index a14dbf37..93c18c2c 100644
--- a/www/board/agenda/spec/secretary_spec.rb
+++ b/www/board/agenda/spec/secretary_spec.rb
@@ -6,7 +6,7 @@ require_relative 'spec_helper'
 
 feature 'report' do
   before :each do
-    page.driver.header 'REMOTE_USER', 'mattsicker' # must be a non-director 
member of the secretarial team
+    page.driver.header 'REMOTE_USER', SEC_ID # must be a non-director member 
of the secretarial team
   end
 
   it "should allow timestamps to be edited" do
diff --git a/www/board/agenda/spec/spec_helper.rb 
b/www/board/agenda/spec/spec_helper.rb
index 5f9d63ea..7c775996 100644
--- a/www/board/agenda/spec/spec_helper.rb
+++ b/www/board/agenda/spec/spec_helper.rb
@@ -77,3 +77,45 @@ RSpec.configure do |config|
     FileUtils.mkdir_p Agenda::CACHE
   end
 end
+
+# must be a non-director member of the secretarial team
+SEC_ID='secretary_id' # dummy for testing
+
+DUMMY = {
+  'ldapsearch -x -LLL -b ou=groups,ou=services,dc=apache,dc=org -s one 
cn=pmc-chairs member memberUid' =>
+      [{"member" => []}],
+    'ldapsearch -x -LLL -b ou=groups,dc=apache,dc=org -s one cn=member 
memberUid' =>
+    [[]],
+    'ldapsearch -x -LLL -b ou=groups,ou=services,dc=apache,dc=org -s one 
cn=board member memberUid' =>
+    [{"member" => []}],
+    'ldapsearch -x -LLL -b ou=groups,ou=services,dc=apache,dc=org -s sub 
cn=asf-secretary dn' =>
+    [["cn=asf-secretary,ou=groups,ou=services,dc=apache,dc=org"]],
+    'ldapsearch -x -LLL -b ou=groups,ou=services,dc=apache,dc=org -s one 
cn=asf-secretary member memberUid' =>
+    [{"member"=>["uid=#{SEC_ID},ou=people,dc=apache,dc=org"], 
"dn"=>["cn=asf-secretary,ou=groups,ou=services,dc=apache,dc=org"]}],
+    'ldapsearch -x -LLL -b ou=groups,ou=services,dc=apache,dc=org -s sub 
cn=board dn' =>
+    [['cn=board,ou=groups,ou=services,dc=apache,dc=org']],
+    'ldapsearch -x -LLL -b ou=groups,ou=services,dc=apache,dc=org -s sub 
cn=pmc-chairs dn' =>
+    [[]],
+    'ldapsearch -x -LLL -b ou=people,dc=apache,dc=org -s one uid=secretary_id 
' =>
+    [],
+}
+
+
+$LOAD_PATH.unshift '/srv/whimsy/lib'
+require 'whimsy/asf/config'
+require 'whimsy/asf/ldap'
+module ASF
+    def self.search_scope(scope, base, filter, attrs=nil)
+      sname = %w(base one sub children)[scope] rescue scope
+      cmd = "ldapsearch -x -LLL -b #{base} -s #{sname} #{filter} " +
+        [attrs].flatten.join(' ')
+        # $stderr.puts cmd
+      ret = DUMMY[cmd]
+      if ret
+        # $stderr.puts ret.inspect
+        return ret
+      else
+        raise "Cannot find response for: '#{cmd}'"
+      end
+    end
+end

Reply via email to