hydra/src/root/user.tt

177 lines
5.8 KiB
Plaintext
Raw Normal View History

2013-11-05 14:02:04 +01:00
[% WRAPPER layout.tt title=(create ? "Add new user" : "Editing user $user.username") %]
2010-12-03 09:40:25 +00:00
[% PROCESS common.tt %]
[% BLOCK roleoption %]
[% checked = false %]
[% FOREACH r IN user.userroles %]
[% checked = r.role == role %]
[% BREAK IF checked %]
[% END %]
<input
type="checkbox"
name="roles"
2013-02-27 18:33:47 +01:00
[% IF checked %]
checked="checked"
2013-02-27 18:33:47 +01:00
[% END %]
[% IF !mutable %]
disabled="disabled"
[% END %]
[% HTML.attributes(id => "role-${role}", value => role) %] />
<label [% HTML.attributes(for => "role-${role}") %]> [% role %]</label><br />
[% END %]
2010-12-03 09:40:25 +00:00
<form>
2013-02-27 18:33:47 +01:00
[% IF create %]
<div class="form-group row">
<label class="col-sm-3" for="userusername">User name</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="userusername" name="username" [% HTML.attributes(value => username) %]/>
</div>
</div>
[% END %]
2013-02-27 18:33:47 +01:00
<div class="form-group row">
<label class="col-sm-3" for="userfullname">Full name</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="userfullname" name="fullname" [% HTML.attributes(value => create ? '' : user.fullname) %]/>
</div>
</div>
2013-02-27 18:33:47 +01:00
[% IF create || user.type == 'hydra' %]
<div class="form-group row">
<label class="col-sm-3" for="userpassword">Password</label>
<div class="col-sm-9">
<input type="password" class="form-control" id="userpassword" name="password" value=""/>
</div>
</div>
2013-02-27 18:33:47 +01:00
<div class="form-group row">
<label class="col-sm-3" for="userpassword2">Confirm password</label>
<div class="col-sm-9">
<input type="password" class="form-control" id="userpassword2" name="password2" value=""/>
</div>
</div>
[% END %]
2010-12-03 09:40:25 +00:00
<div class="form-group row">
<label class="col-sm-3" for="useremailaddress">Email</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="useremailaddress" name="emailaddress" [% IF !create && user.username.search('@') %]disabled="disabled"[% END %] [%+ HTML.attributes(value => user.emailaddress) %]/>
2013-02-27 18:33:47 +01:00
</div>
</div>
2013-02-27 18:33:47 +01:00
<div class="form-group row">
<label class="col-sm-3" for="useremailonerror">Receive evaluation error notifications</label>
<div class="col-sm-9">
<input type="checkbox" name="emailonerror" [% IF !create && user.emailonerror; 'checked="checked"'; END %]/>
</div>
</div>
2013-02-27 18:33:47 +01:00
<div class="form-group row">
<label class="col-sm-3" for="userpublicdashboard">Public dashboard</label>
<div class="col-sm-9">
<input type="checkbox" name="publicdashboard" [% IF !create && user.publicdashboard; 'checked="checked"'; END %]/>
</div>
</div>
[% IF !create || c.check_user_roles('admin') %]
[% mutable = c.check_user_roles('admin') %]
<div class="form-group row card [% mutable ? "border-danger" : "border-light" %]">
<div class="card-header">User Roles</div>
<div class="card-body [% mutable ? "text-danger" : "" %]">
[% IF mutable %]
<h5 class="card-title">Take care, you're allowed to change [% HTML.escape(user.fullname || user.emailaddress || "this user") %]'s roles.</h5>
[% ELSE %]
<h5 class="card-title">[% HTML.escape(user.fullname || user.emailaddress || "this user") %]'s roles.</h5>
[% END %]
<p class="card-text">
[% INCLUDE roleoption mutable=mutable role="admin" %]
[% INCLUDE roleoption mutable=mutable role="create-projects" %]
[% INCLUDE roleoption mutable=mutable role="restart-jobs" %]
[% INCLUDE roleoption mutable=mutable role="bump-to-front" %]
[% INCLUDE roleoption mutable=mutable role="cancel-build" %]
</p>
2013-02-27 18:33:47 +01:00
</div>
</div>
[% END %]
2013-02-27 18:33:47 +01:00
[% IF create && !c.check_user_roles('admin') %]
<div class="form-group row">
<label class="col-sm-3"></label>
<div class="col-sm-9">
<img src="[% c.uri_for('/captcha') %]" alt="CAPTCHA">
2013-02-27 18:33:47 +01:00
</div>
</div>
<div class="form-group row">
<label class="col-sm-3" for="usercaptcha">Type the digits shown in the image above</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="usercaptcha" name="captcha" value="">
2013-02-27 18:33:47 +01:00
</div>
</div>
[% END %]
<button id="submit-user" class="btn btn-primary">
<i class="fas fa-check"></i>
[%IF create %]Create[% ELSE %]Apply changes[% END %]
</button>
[% IF !create && c.check_user_roles('admin') && user.type == 'hydra' %]
<button id="reset-password" class="btn btn-warning">
<i class="fas fa-lock"></i>
Reset password
</button>
[% END %]
[% IF !create %]
<button id="delete-user" class="btn btn-danger">
<i class="fas fa-trash"></i>
Delete this user
</button>
[% END %]
2010-12-03 09:40:25 +00:00
</form>
2013-11-05 14:02:04 +01:00
<script>
$("#submit-user").click(function() {
requestJSON({
[% IF create %]
url: "[% c.uri_for(c.controller('User').action_for('register')) %]",
[% ELSE %]
url: "[% c.uri_for(c.controller('User').action_for('edit'), c.req.captures) %]",
[% END %]
data: $(this).parents("form").serialize(),
type: 'PUT',
success: backToReferrer
});
return false;
});
$("#reset-password").click(function() {
bootbox.confirm(
'Are you sure you want to reset the password for this user?',
function(c) {
if (!c) return;
requestJSON({
url: "[% c.uri_for(c.controller('User').action_for('reset_password'), [user.username]) %]",
type: 'POST',
success: backToReferrer
});
});
return false;
});
$("#delete-user").click(function() {
bootbox.confirm(
'Are you sure you want to delete this user?',
function(c) {
if (!c) return;
requestJSON({
url: "[% c.uri_for(c.controller('User').action_for('edit'), c.req.captures) %]",
type: 'DELETE',
success: backToReferrer
});
});
return false;
});
</script>
2010-12-03 09:40:25 +00:00
[% END %]