Re-enable adding new users via the web interface
[?]
Nov 5, 2013, 11:41 AM
MQMF2LBWWPW2SOZKC3O7P4TBJJ3V6RBVQ52OYA4KCGXS7G6SHWQACDependencies
- [2]
AWMM5OGVUse delete instead of delete_all - [3]
D44B24QCStore the account type ("hydra" or "persona") explicitly in the database - [4]
2G63HKCHFix some wellformedness issues - [5]
SZYDW2DGhydra: added some user admin - [6]
CGVKJQPIShow a user's roles in the preferences page - [7]
7KF7YZDRDisable account creation for now - [8]
LCLCU6FNDon't show a password reset button for Persona accounts - [9]
JARRBLZDBootstrapify the Hydra forms (except the project and jobset edit pages) - [10]
GTXYNFUKMerge branch 'master' into persona - [11]
XJRJ4J7MAdd user registration - [12]
LSZLZHJYAllow users to edit their own settings - [13]
LZVO64YGMerge in the first bits of the API work - [14]
XUKHBDR5Prevent Persona users from setting a password
Change contents
- replacement in src/lib/Hydra/Controller/User.pm at line 127
die "Not implemented!\n";accessDenied($c, "User registration is currently not implemented.") unless isAdmin($c); - edit in src/lib/Hydra/Controller/User.pm at line 134
my $fullName = trim $c->req->params->{fullname};my $password = trim $c->req->params->{password}; - edit in src/lib/Hydra/Controller/User.pm at line 135
$c->stash->{fullname} = $fullName;sub fail {my ($c, $msg) = @_;$c->stash->{errorMsg} = $msg;} - replacement in src/lib/Hydra/Controller/User.pm at line 136
return fail($c, "You did not enter the correct digits from the security image.")unless $c->validate_captcha($c->req->param('captcha'));error($c, "You did not enter the correct digits from the security image.")unless isAdmin($c) || $c->validate_captcha($c->req->param('captcha')); - replacement in src/lib/Hydra/Controller/User.pm at line 139
return fail($c, "Your user name is invalid. It must start with a lower-case letter followed by lower-case letters, digits, dots or underscores.")error($c, "Your user name is invalid. It must start with a lower-case letter followed by lower-case letters, digits, dots or underscores.") - replacement in src/lib/Hydra/Controller/User.pm at line 142
return fail($c, "Your user name is already taken.")error($c, "Your user name is already taken.") - edit in src/lib/Hydra/Controller/User.pm at line 144
return fail($c, "Your must specify your full name.") if $fullName eq "";return fail($c, "You must specify a password of at least 6 characters.")unless isValidPassword($password); - edit in src/lib/Hydra/Controller/User.pm at line 145
return fail($c, "The passwords you specified did not match.")if $password ne trim $c->req->params->{password2}; - edit in src/lib/Hydra/Controller/User.pm at line 148
, fullname => $fullName - replacement in src/lib/Hydra/Controller/User.pm at line 152
setPassword($user, $password);updatePreferences($c, $user); - replacement in src/lib/Hydra/Controller/User.pm at line 156
$c->authenticate({username => $userName, password => $password})$c->set_authenticated({username => $userName}) - edit in src/lib/Hydra/Controller/User.pm at line 164
sub updatePreferences {my ($c, $user) = @_; - edit in src/lib/Hydra/Controller/User.pm at line 168
my $password = trim($c->req->params->{password} // "");if ($user->type eq "hydra" && ($user->password eq "!" || $password ne "")) {error($c, "You must specify a password of at least 6 characters.")unless isValidPassword($password);error($c, "The passwords you specified did not match.")if $password ne trim $c->req->params->{password2};setPassword($user, $password);}my $fullName = trim($c->req->params->{fullname} // "");error($c, "Your must specify your full name.") if $fullName eq "";my $emailAddress = trim($c->req->params->{emailaddress} // "");# FIXME: validate email address?$user->update({ fullname => $fullName, emailonerror => $c->stash->{params}->{"emailonerror"} ? 1 : 0});if (isAdmin($c)) {$user->update({ emailaddress => $emailAddress })if $user->type eq "hydra";$user->userroles->delete;$user->userroles->create({ role => $_ })foreach paramToList($c, "roles");}} - edit in src/lib/Hydra/Controller/User.pm at line 286
my $fullName = trim $c->stash->{params}->{fullname}; - replacement in src/lib/Hydra/Controller/User.pm at line 287[4.3137]→[4.3137:3273](∅→∅),[4.3273]→[4.25972:26048](∅→∅),[4.26048]→[4.3349:3366](∅→∅),[4.3349]→[4.3349:3366](∅→∅),[4.3366]→[4.26049:26111](∅→∅),[4.26111]→[3.151:208](∅→∅),[3.208]→[4.3455:3653](∅→∅),[4.265]→[4.3455:3653](∅→∅),[4.3455]→[4.3455:3653](∅→∅),[4.3653]→[4.26112:26183](∅→∅),[4.26183]→[4.3720:3801](∅→∅),[4.3720]→[4.3720:3801](∅→∅),[4.3801]→[2.492:530](∅→∅),[2.530]→[4.3843:3956](∅→∅),[4.3843]→[4.3843:3956](∅→∅)
error($c, "Your must specify your full name.") if $fullName eq "";$user->update({ fullname => $fullName, emailonerror => $c->stash->{params}->{"emailonerror"} ? 1 : 0});my $password = $c->stash->{params}->{password} // "";if ($user->type eq "hydra" && $password ne "") {error($c, "You must specify a password of at least 6 characters.")unless isValidPassword($password);error($c, "The passwords you specified did not match.")if $password ne trim $c->stash->{params}->{password2};setPassword($user, $password);}if (isAdmin($c)) {$user->userroles->delete;$user->userroles->create({ role => $_})foreach paramToList($c, "roles");}updatePreferences($c, $user); - replacement in src/root/user.tt at line 37
[% IF !create && user.type == 'hydra' %][% IF create || user.type == 'hydra' %] - edit in src/root/user.tt at line 53
<!-- - replacement in src/root/user.tt at line 56
<input type="text" class="span3" name="emailaddress" [% HTML.attributes(value => user.emailaddress) %]/><input type="text" class="span3" name="emailaddress" [% IF !create && user.type == 'persona' %]disabled="disabled"[% END %] [%+ HTML.attributes(value => user.emailaddress) %]/> - edit in src/root/user.tt at line 59
--> - replacement in src/root/user.tt at line 60[4.18937]→[4.18937:18958](∅→∅),[4.18958]→[4.6122:6222](∅→∅),[4.6222]→[4.4930:5073](∅→∅),[4.5073]→[4.6356:6390](∅→∅),[4.5592]→[4.6356:6390](∅→∅),[4.6356]→[4.6356:6390](∅→∅)
[% IF !create %]<div class="control-group"><div class="controls"><label class="checkbox"><input type="checkbox" name="emailonerror" [% IF emailonerror; 'checked="checked"'; END %]/>Receive evaluation error notifications</label></div><div class="control-group"><div class="controls"><label class="checkbox"><input type="checkbox" name="emailonerror" [% IF emailonerror; 'checked="checked"'; END %]/>Receive evaluation error notifications</label> - replacement in src/root/user.tt at line 66
[% END %]</div> - replacement in src/root/user.tt at line 68
[% IF !create %][% IF !create || c.check_user_roles('admin') %] - replacement in src/root/user.tt at line 80
[% IF create %][% IF create && !c.check_user_roles('admin') %]