##// END OF EJS Templates
release: Finish preparation for 4.23.2
release: Finish preparation for 4.23.2

File last commit:

r4430:d880ce51 default
r4599:7637c385 v4.23.2 stable
Show More
user_edit_auth_tokens.mako
210 lines | 7.6 KiB | application/x-mako | MakoHtmlLexer
/ rhodecode / templates / admin / users / user_edit_auth_tokens.mako
users/user-groups: added context of what we're editing....
r4232 <%namespace name="base" file="/base/base.mako"/>
templating: use .mako as extensions for template files.
r1282 <div class="panel panel-default">
users: added more secure way for fetching authentication tokens....
r4316 <script>
var showAuthToken = function(authTokenId) {
return _showAuthToken(authTokenId, pyroutes.url('edit_user_auth_tokens_view', {'user_id': '${c.user.user_id}'}))
}
</script>
templating: use .mako as extensions for template files.
r1282 <div class="panel-heading">
users/user-groups: added context of what we're editing....
r4232 <h3 class="panel-title">
${base.gravatar_with_user(c.user.username, 16, tooltip=False, _class='pull-left')}
&nbsp;- ${_('Authentication Tokens')}
</h3>
templating: use .mako as extensions for template files.
r1282 </div>
<div class="panel-body">
<div class="apikeys_wrap">
auth-tokens: add scope and show consitent token UI for my account and admin.
r1480 <p>
auth-tokens: expose all roles with explanation to help users understand it better.
r4430 ${_('Available roles')}:
<ul>
% for role in h.UserApiKeys.ROLES:
<li>
<span class="tag disabled">${h.UserApiKeys._get_role_name(role)}</span>
<span>${h.UserApiKeys._get_role_description(role) |n}</span>
</li>
% endfor
</ul>
auth-tokens: add scope and show consitent token UI for my account and admin.
r1480 </p>
templating: use .mako as extensions for template files.
r1282 <table class="rctable auth_tokens">
auth-tokens: add scope and show consitent token UI for my account and admin.
r1480 <tr>
<th>${_('Token')}</th>
<th>${_('Description')}</th>
<th>${_('Role')}</th>
auth-tokens: improve UI.
r3391 <th>${_('Repository Scope')}</th>
auth-tokens: add scope and show consitent token UI for my account and admin.
r1480 <th>${_('Expiration')}</th>
<th>${_('Action')}</th>
</tr>
templating: use .mako as extensions for template files.
r1282 %if c.user_auth_tokens:
%for auth_token in c.user_auth_tokens:
auth-tokens: improve UI.
r3391 <tr class="${('expired' if auth_token.expired else '')}">
users: added more secure way for fetching authentication tokens....
r4316 <td class="td-authtoken">
<div class="user_auth_tokens">
<code class="cursor-pointer" onclick="showAuthToken(${auth_token.user_api_key_id})">
${auth_token.token_obfuscated}
</code>
auth-tokens: improve UI.
r3391 </div>
</td>
templating: use .mako as extensions for template files.
r1282 <td class="td-wrap">${auth_token.description}</td>
<td class="td-tags">
auth-tokens: expose all roles with explanation to help users understand it better.
r4430 <span class="tooltip tag disabled" title="${h.UserApiKeys._get_role_description(auth_token.role)}">${auth_token.role_humanized}</span>
templating: use .mako as extensions for template files.
r1282 </td>
auth-tokens: improve UI.
r3391 <td class="td">${auth_token.scope_humanized}</td>
templating: use .mako as extensions for template files.
r1282 <td class="td-exp">
%if auth_token.expires == -1:
auth-tokens: add scope and show consitent token UI for my account and admin.
r1480 ${_('never')}
templating: use .mako as extensions for template files.
r1282 %else:
%if auth_token.expired:
auth-tokens: add scope and show consitent token UI for my account and admin.
r1480 <span style="text-decoration: line-through">${h.age_component(h.time_to_utcdatetime(auth_token.expires))}</span>
templating: use .mako as extensions for template files.
r1282 %else:
auth-tokens: add scope and show consitent token UI for my account and admin.
r1480 ${h.age_component(h.time_to_utcdatetime(auth_token.expires))}
templating: use .mako as extensions for template files.
r1282 %endif
%endif
</td>
admin: moved auth tokens into pyramid view....
r1518 <td class="td-action">
forms: unified usage of h.secure_form. Make sure we ALWAYS pass in...
r2105 ${h.secure_form(h.route_path('edit_user_auth_tokens_delete', user_id=c.user.user_id), request=request)}
users: added more secure way for fetching authentication tokens....
r4316 <input name="del_auth_token" type="hidden" value="${auth_token.user_api_key_id}">
templating: use .mako as extensions for template files.
r1282 <button class="btn btn-link btn-danger" type="submit"
users-admin: moved views into pyramid for editing emails and ips....
r1821 onclick="return confirm('${_('Confirm to remove this auth token: %s') % auth_token.token_obfuscated}');">
templating: use .mako as extensions for template files.
r1282 ${_('Delete')}
</button>
${h.end_form()}
</td>
</tr>
%endfor
%else:
<tr><td><div class="ip">${_('No additional auth tokens specified')}</div></td></tr>
%endif
</table>
</div>
<div class="user_auth_tokens">
forms: unified usage of h.secure_form. Make sure we ALWAYS pass in...
r2105 ${h.secure_form(h.route_path('edit_user_auth_tokens_add', user_id=c.user.user_id), request=request)}
templating: use .mako as extensions for template files.
r1282 <div class="form form-vertical">
<!-- fields -->
<div class="fields">
<div class="field">
<div class="label">
auth-tokens: add scope and show consitent token UI for my account and admin.
r1480 <label for="new_email">${_('New authentication token')}:</label>
templating: use .mako as extensions for template files.
r1282 </div>
<div class="input">
${h.text('description', class_='medium', placeholder=_('Description'))}
auth-tokens: allow specifing custom expiration date manually....
r2083 ${h.hidden('lifetime')}
templating: use .mako as extensions for template files.
r1282 ${h.select('role', '', c.role_options)}
admin: moved auth tokens into pyramid view....
r1518
% if c.allow_scoped_tokens:
${h.hidden('scope_repo_id')}
% else:
${h.select('scope_repo_id_disabled', '', ['Scopes available in EE edition'], disabled='disabled')}
% endif
templating: use .mako as extensions for template files.
r1282 </div>
admin: moved auth tokens into pyramid view....
r1518 <p class="help-block">
${_('Repository scope works only with tokens with VCS type.')}
</p>
templating: use .mako as extensions for template files.
r1282 </div>
<div class="buttons">
admin: moved auth tokens into pyramid view....
r1518 ${h.submit('save',_('Add'),class_="btn")}
${h.reset('reset',_('Reset'),class_="btn")}
templating: use .mako as extensions for template files.
r1282 </div>
</div>
</div>
${h.end_form()}
</div>
</div>
</div>
<script>
admin: moved auth tokens into pyramid view....
r1518
$(document).ready(function(){
users: ported controllers from pylons into pyramid views.
r2114
admin: moved auth tokens into pyramid view....
r1518 var select2Options = {
'containerCssClass': "drop-menu",
'dropdownCssClass': "drop-menu-dropdown",
'dropdownAutoWidth': true
};
$("#role").select2(select2Options);
auth-tokens: allow specifing custom expiration date manually....
r2083 var preloadData = {
results: [
% for entry in c.lifetime_values:
{id:${entry[0]}, text:"${entry[1]}"}${'' if loop.last else ','}
% endfor
]
};
$("#lifetime").select2({
containerCssClass: "drop-menu",
dropdownCssClass: "drop-menu-dropdown",
dropdownAutoWidth: true,
data: preloadData,
auth-tokens: fix placeholder text
r2084 placeholder: "${_('Select or enter expiration date')}",
auth-tokens: allow specifing custom expiration date manually....
r2083 query: function(query) {
feedLifetimeOptions(query, preloadData);
}
});
admin: moved auth tokens into pyramid view....
r1518 var repoFilter = function(data) {
var results = [];
if (!data.results[0]) {
return data
}
$.each(data.results[0].children, function() {
// replace name to ID for submision
repo-switcher: new unified search box for filtering/accessing users, repos and repo groups....
r2774 this.id = this.repo_id;
admin: moved auth tokens into pyramid view....
r1518 results.push(this);
});
data.results[0].children = results;
return data;
};
$("#scope_repo_id_disabled").select2(select2Options);
repo-auth-tokens: UX, set and disable to VCS scope if selected an repo from select2
r2118 var selectVcsScope = function() {
// select vcs scope and disable input
$("#role").select2("val", "${c.role_vcs}").trigger('change');
$("#role").select2("readonly", true)
};
admin: moved auth tokens into pyramid view....
r1518 $("#scope_repo_id").select2({
cachedDataSource: {},
minimumInputLength: 2,
placeholder: "${_('repository scope')}",
dropdownAutoWidth: true,
containerCssClass: "drop-menu",
dropdownCssClass: "drop-menu-dropdown",
repo-switcher: new unified search box for filtering/accessing users, repos and repo groups....
r2774 formatResult: formatRepoResult,
admin: moved auth tokens into pyramid view....
r1518 query: $.debounce(250, function(query){
self = this;
var cacheKey = query.term;
var cachedData = self.cachedDataSource[cacheKey];
if (cachedData) {
query.callback({results: cachedData.results});
} else {
$.ajax({
core: moved repo_list data to pyramid.
r1667 url: pyroutes.url('repo_list_data'),
admin: moved auth tokens into pyramid view....
r1518 data: {'query': query.term},
dataType: 'json',
type: 'GET',
success: function(data) {
data = repoFilter(data);
self.cachedDataSource[cacheKey] = data;
query.callback({results: data.results});
},
error: function(data, textStatus, errorThrown) {
alert("Error while fetching entries.\nError code {0} ({1}).".format(data.status, data.statusText));
}
users: ported controllers from pylons into pyramid views.
r2114 })
}
templating: use .mako as extensions for template files.
r1282 })
admin: moved auth tokens into pyramid view....
r1518 });
repo-auth-tokens: UX, set and disable to VCS scope if selected an repo from select2
r2118 $("#scope_repo_id").on('select2-selecting', function(e){
selectVcsScope()
});
admin: moved auth tokens into pyramid view....
r1518
});
templating: use .mako as extensions for template files.
r1282 </script>