You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by se...@apache.org on 2019/03/23 12:00:12 UTC
[whimsy] branch master updated: Only skip actual update for dryrun
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 e5268e6 Only skip actual update for dryrun
e5268e6 is described below
commit e5268e6d98a0c4a87950e1c41e7186f76e923d86
Author: Sebb <se...@apache.org>
AuthorDate: Sat Mar 23 12:00:04 2019 +0000
Only skip actual update for dryrun
Also validate names and report new values
---
www/roster/views/actions/github.json.rb | 24 ++++++++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/www/roster/views/actions/github.json.rb b/www/roster/views/actions/github.json.rb
index 539d11d..ce0b183 100644
--- a/www/roster/views/actions/github.json.rb
+++ b/www/roster/views/actions/github.json.rb
@@ -7,14 +7,30 @@ person = ASF::Person.find(@userid)
# report the previous value in the response
_previous githubUsername: person.attrs['githubUsername']
-if @githubuser and not @dryrun
+if @githubuser
# TODO: Hack to deal with single input field on the form
# multiple entries are currently displayed with commas when editting
names = @githubuser.split(/[, ]+/).uniq{|n| n.downcase} # duplicates not allowed; case-blind
- # update LDAP
- _ldap.update do
- person.modify 'githubUsername', names
+
+ # report the new values
+ _replacement githubUsername: names
+
+ # Validate the names
+ names.each do |name|
+ unless name =~ /^[-0-9a-zA-Z]+$/ # TODO: might need extendind?
+ _error "githubUsername must be alphanumeric (or -): '#{name}'"
+ return
+ end
+ # TODO: perhaps check that https://github.com/name exists?
end
+
+ unless @dryrun
+ # update LDAP
+ _ldap.update do
+ person.modify 'githubUsername', names
+ end
+ end
+
end
# return updated committer info