Commit 4af38cc25141db5266a413a32468fa3693f70f7f:
cosmetic improvements
Branch: refs/heads/master
Author: Sam Ruby <[email protected]>
Committer: Sam Ruby <[email protected]>
Pusher: rubys <[email protected]>
------------------------------------------------------------
www/members/proxy.cgi | +++++++ ------
www/roster/models/group.rb | +++++++++ --
------------------------------------------------------------
138 changes: 88 additions, 50 deletions.
------------------------------------------------------------
diff --git a/www/members/proxy.cgi b/www/members/proxy.cgi
index 0c0da9b..2d262cc 100755
--- a/www/members/proxy.cgi
+++ b/www/members/proxy.cgi
@@ -4,6 +4,7 @@ $LOAD_PATH.unshift
File.realpath(File.expand_path('../../../lib', __FILE__))
require 'wunderbar'
require 'whimsy/asf'
require 'date'
+require 'tmpdir'
# Update ~/.whimsy to have a :svn: entry for the following:
MEETINGS = ASF::SVN['private/foundation/Meetings']
@@ -12,6 +13,10 @@ _html do
_link href: "css/bootstrap.min.css", rel: 'stylesheet'
_link href: "css/bootstrap-combobox.css", rel: 'stylesheet'
_style :system
+ _style %{
+ .transcript {margin: 0 16px}
+ .transcript pre {border: none; line-height: 0}
+ }
meeting = File.basename(Dir["#{MEETINGS}/2*"].sort.last).untaint
@@ -100,6 +105,8 @@ _html do
else
_body? do
+ _h3_ 'Session Transcript'
+
# collect data
proxy = File.read("#{MEETINGS}/#{meeting}/member_proxy.txt")
user = ASF::Person.find($USER)
@@ -119,53 +126,55 @@ _html do
proxyform = proxy.untaint
# report on commit
- require 'tmpdir'
- Dir.mktmpdir do |tmpdir|
- svn = `svn info #{MEETINGS}/#{meeting}`[/URL: (.*)/, 1]
-
- _.system [
- 'svn', 'checkout', svn.untaint, tmpdir.untaint,
- ['--no-auth-cache', '--non-interactive'],
- (['--username', $USER, '--password', $PASSWORD] if $PASSWORD)
- ]
-
- Dir.chdir(tmpdir) do
- _h3 'Commit Log'
- # write proxy form
- filename = "proxies-received/#$USER.txt".untaint
- File.write(filename, proxyform)
- _.system ['svn', 'add', filename]
-
- # get a list of proxies
- list = Dir['proxies-received/*.txt'].map do |file|
- form = File.read(file.untaint)
-
- id = file[/([-A-Za-z0-9]+)\.\w+$/, 1]
- proxy = form[/hereby authorize ([\S].*) to act/, 1].gsub('_', '
').strip
- name = form[/signature: ([\S].*)/, 1].gsub(/[\/_]/, ' ').strip
-
- " #{proxy.ljust(24)} #{name} (#{id})"
- end
-
- # gather a list of all non-text proxies
- nontext = Dir['proxies-received/*'].
- reject {|file| file.end_with? '.txt'}.
- map {|file| file[/([A-Za-z0-9]+)\.\w+$/, 1]}
-
- # update proxies file
- proxies = IO.read('proxies')
- list += proxies.scan(/ \S.*\(\S+\)$/).
- select {|line| nontext.include? line[/\((\S+)\)$/, 1]}
- proxies[/.*-\n(.*)/m, 1] = list.flatten.sort.join("\n") + "\n"
- IO.write('proxies', proxies)
-
- # commit
+ _div.transcript do
+ Dir.mktmpdir do |tmpdir|
+ svn = `svn info #{MEETINGS}/#{meeting}`[/URL: (.*)/, 1]
+
_.system [
- 'svn', 'commit', filename, 'proxies',
- '-m', "assign #{@proxy} as my proxy",
+ 'svn', 'checkout', '--quiet', svn.untaint, tmpdir.untaint,
['--no-auth-cache', '--non-interactive'],
(['--username', $USER, '--password', $PASSWORD] if $PASSWORD)
]
+
+ Dir.chdir(tmpdir) do
+ _h3 'Commit Log'
+ # write proxy form
+ filename = "proxies-received/#$USER.txt".untaint
+ File.write(filename, proxyform)
+ _.system ['svn', 'add', filename]
+
+ # get a list of proxies
+ list = Dir['proxies-received/*.txt'].map do |file|
+ form = File.read(file.untaint)
+
+ id = file[/([-A-Za-z0-9]+)\.\w+$/, 1]
+ proxy = form[/hereby authorize ([\S].*) to act/, 1].
+ gsub('_', ' ').strip
+ name = form[/signature: ([\S].*)/, 1].gsub(/[\/_]/, ' ').strip
+
+ " #{proxy.ljust(24)} #{name} (#{id})"
+ end
+
+ # gather a list of all non-text proxies
+ nontext = Dir['proxies-received/*'].
+ reject {|file| file.end_with? '.txt'}.
+ map {|file| file[/([A-Za-z0-9]+)\.\w+$/, 1]}
+
+ # update proxies file
+ proxies = IO.read('proxies')
+ list += proxies.scan(/ \S.*\(\S+\)$/).
+ select {|line| nontext.include? line[/\((\S+)\)$/, 1]}
+ proxies[/.*-\n(.*)/m, 1] = list.flatten.sort.join("\n") + "\n"
+ IO.write('proxies', proxies)
+
+ # commit
+ _.system [
+ 'svn', 'commit', filename, 'proxies',
+ '-m', "assign #{@proxy} as my proxy",
+ ['--no-auth-cache', '--non-interactive'],
+ (['--username', $USER, '--password', $PASSWORD] if $PASSWORD)
+ ]
+ end
end
end
diff --git a/www/roster/models/group.rb b/www/roster/models/group.rb
index 2be3980..43a99ce 100644
--- a/www/roster/models/group.rb
+++ b/www/roster/models/group.rb
@@ -1,3 +1,7 @@
+#
+# Try each type of group until a match is found
+#
+
class Group
def self.serialize(id)
response = {}
@@ -10,15 +14,40 @@ def self.serialize(id)
group = ASF::Service.find(id)
end
- return if group.members.empty?
+ if not group.members.empty?
+ # LDAP group
+
+ people = ASF::Person.preload('cn', group.members)
+
+ response = {
+ id: id,
+ type: type,
+ members: Hash[group.members.map {|person| [person.id, person.cn]}]
+ }
+
+ else
- people = ASF::Person.preload('cn', group.members)
+ type = 'asf-auth'
+ group = ASF::Authorization.new('asf').to_h[id]
- response = {
- id: id,
- type: type,
- members: Hash[group.members.map {|person| [person.id, person.cn]}]
- }
+ if not group
+ type = 'pit-auth'
+ group = ASF::Authorization.new('pit').to_h[id]
+ end
+
+ if group
+ group.map! {|id| ASF::Person.find(id)}
+
+ # auth group
+ people = ASF::Person.preload('cn', group)
+
+ response = {
+ id: id,
+ type: type,
+ members: Hash[group.map {|person| [person.id, person.cn]}]
+ }
+ end
+ end
response
end