##// END OF EJS Templates
template: use mako block for root.html extra sections
template: use mako block for root.html extra sections

File last commit:

r4809:ec39e73b default
r4810:6a825018 default
Show More
auth_settings.html
138 lines | 5.4 KiB | text/html | HtmlLexer
## -*- coding: utf-8 -*-
<%inherit file="/base/base.html"/>
<%def name="title()">
${_('Authentication Settings')}
%if c.site_name:
&middot; ${c.site_name}
%endif
</%def>
<%def name="breadcrumbs_links()">
${h.link_to(_('Admin'),h.url('admin_home'))}
&raquo;
${_('Authentication')}
</%def>
<%block name="header_menu">
${self.menu('admin')}
</%block>
<%def name="main()">
<div class="box">
<!-- box / title -->
<div class="title">
${self.breadcrumbs()}
</div>
${h.form(url('auth_settings'))}
<div class="form">
## enabled auth plugins
<h1>${_('Authentication Plugins')}</h1>
<div class="fields">
<div class="field">
<div class="label"><label for="auth_plugins">${_("Enabled Plugins")}</label></div>
<div class="input">${h.text("auth_plugins", class_='large')}
<span class="help-block">${_('Comma separated list of plugins. Order of plugins is also order in which Kallithea will try to authenticate user')}</span>
<div style="padding:10px 0px 10px 0px;font-weight: bold">${_('Available built-in plugins')}</div>
<ul>
%for plugin_path in c.available_plugins:
<li>
<div style="padding:3px 0px 3px 0px">
<span style="margin: 0px 10px 0px 0px" plugin_id="${plugin_path}" class="toggle-plugin btn btn-mini ${'btn-success' if plugin_path in c.enabled_plugins else ''}">
${_('enabled') if plugin_path in c.enabled_plugins else _('disabled')}</span>${plugin_path}
</div>
</li>
%endfor
</ul>
</div>
</div>
</div>
%for cnt, module in enumerate(c.auth_plugins):
<% pluginName = c.auth_plugins_shortnames[module] %>
<h1>${_('Plugin')}: ${pluginName}</h1>
<div class="fields">
## autoform generation, based on plugin definition from it's settings
%for setting in c.plugin_settings[module]:
<% fullsetting = "auth_%s_%s" % (pluginName, setting["name"]) %>
<% displayname = (setting["formname"] if ("formname" in setting) else setting["name"]) %>
%if setting["type"] == "password":
<div class="field">
<div class="label"><label for="${fullsetting}">${_(displayname)}</label></div>
<div class="input">
${h.password(fullsetting,class_='small',autocomplete="off")}
<span class="help-block">${setting["description"]}</span>
</div>
</div>
%elif setting["type"] in ["string", "int"]:
<div class="field">
<div class="label"><label for="${fullsetting}">${_(displayname)}</label></div>
<div class="input">
${h.text(fullsetting,class_='small')}
<span class="help-block">${setting["description"]}</span>
</div>
</div>
%elif setting["type"] == "bool":
<div class="field">
<div class="label label-checkbox"><label for="${fullsetting}">${_(displayname)}</label></div>
<div class="checkboxes">
<div class="checkbox">${h.checkbox(fullsetting,True,class_='small')}</div>
<span class="help-block">${setting["description"]}</span>
</div>
</div>
%elif setting["type"] == "select":
<div class="field">
<div class="label"><label for="${fullsetting}">${_(displayname)}</label></div>
<div class="select">
${h.select(fullsetting,setting['values'][0],setting['values'],class_='small')}
<span class="help-block">${setting["description"]}</span>
</div>
</div>
%else:
<div class="field">
<div class="label"><label for="${fullsetting}">${_(displayname)}</label></div>
<div class="input">This field is of type ${setting['type']}, which cannot be displayed. Must be one of [string|int|bool|select].</div>
<span class="help-block">${setting["description"]}</span>
</div>
%endif
%endfor
</div>
%endfor
<div class="fields">
<div class="buttons">
${h.submit('save',_('Save'),class_="btn")}
</div>
</div>
</div>
${h.end_form()}
</div>
<script>
$('.toggle-plugin').click(function(e){
var $auth_plugins_input = $('#auth_plugins');
var notEmpty = function(element, index, array) {
return (element != "");
}
var elems = $auth_plugins_input.val().split(',').filter(notEmpty);
var $cur_button = $(e.currentTarget);
var plugin_id = $cur_button.attr('plugin_id');
if($cur_button.hasClass('btn-success')){
elems.splice(elems.indexOf(plugin_id), 1);
$auth_plugins_input.val(elems.join(','));
$cur_button.removeClass('btn-success');
$cur_button.html(_TM['disabled']);
}
else{
console.log(elems);
if(elems.indexOf(plugin_id) == -1){
elems.push(plugin_id);
}
$auth_plugins_input.val(elems.join(','));
$cur_button.addClass('btn-success');
$cur_button.html(_TM['enabled']);
}
});
</script>
</%def>