##// END OF EJS Templates
user-groups: fix potential problem with group sync of external plugins....
user-groups: fix potential problem with group sync of external plugins. - when using external plugin we used to check for a parameter that set the sync mode. The problem is we only checked if the flag was there. So toggling sync on and off set the value and then left the key still set but with None. This confused the sync and thought the group should be synced !

File last commit:

r2118:3991f1f4 default
r2143:4314e88b default
Show More
user_edit_auth_tokens.mako
186 lines | 6.8 KiB | application/x-mako | MakoHtmlLexer
/ rhodecode / templates / admin / users / user_edit_auth_tokens.mako
templating: use .mako as extensions for template files.
r1282 <div class="panel panel-default">
<div class="panel-heading">
admin: moved auth tokens into pyramid view....
r1518 <h3 class="panel-title">${_('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>
${_('Each token can have a role. Token with a role can be used only in given context, '
'e.g. VCS tokens can be used together with the authtoken auth plugin for git/hg/svn operations only.')}
</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>${_('Scope')}</th>
<th>${_('Description')}</th>
<th>${_('Role')}</th>
<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:
<tr class="${'expired' if auth_token.expired else ''}">
<td class="truncate-wrap td-authtoken"><div class="user_auth_tokens truncate autoexpand"><code>${auth_token.api_key}</code></div></td>
auth-tokens: add scope and show consitent token UI for my account and admin.
r1480 <td class="td">${auth_token.scope_humanized}</td>
templating: use .mako as extensions for template files.
r1282 <td class="td-wrap">${auth_token.description}</td>
<td class="td-tags">
admin: moved auth tokens into pyramid view....
r1518 <span class="tag disabled">${auth_token.role_humanized}</span>
templating: use .mako as extensions for template files.
r1282 </td>
<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-admin: moved views into pyramid for editing emails and ips....
r1821 ${h.hidden('del_auth_token', 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
this.id = this.obj.repo_id;
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",
formatResult: formatResult,
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>