view rhodecode/templates/admin/ldap/ldap.html @ 991:b232a36cc51f issue-108

Improve LDAP authentication * Adds an LDAP filter for locating the LDAP object * Adds a search scope policy when using the Base DN * Adds option required certificate policy when using LDAPS * Adds attribute mapping for username, firstname, lastname, email * Initializes rhodecode user using LDAP info (no longer uses "@ldap") * Remembers the user object (DN) in the user table * Updates admin interfaces * Authenticates against actual user objects in LDAP * Possibly other things. Really, this should be extended to a list of LDAP configurations, but this is a good start.
author Thayne Harbaugh <thayne@fusionio.com>
date Thu, 03 Feb 2011 16:34:40 -0700
parents 6b40654afa1e
children 74685a31cc43
line wrap: on
line source

## -*- coding: utf-8 -*-
<%inherit file="/base/base.html"/>

<%def name="title()">
    ${_('LDAP administration')} - ${c.rhodecode_name}
</%def>

<%def name="breadcrumbs_links()">
    ${h.link_to(_('Admin'),h.url('admin_home'))} 
    &raquo;
    ${_('Ldap')}    
</%def>

<%def name="page_nav()">
    ${self.menu('admin')}
</%def>

<%def name="main()">
<div class="box">
    <!-- box / title -->
    <div class="title">
        ${self.breadcrumbs()}       
    </div>
    ${h.form(url('ldap_settings'))}
    <div class="form">
        <div class="fields">

	  <h3>${_('Connection settings')}</h3>
            <div class="field">
                <div class="label label-checkbox"><label for="ldap_active">${_('Enable LDAP')}</label></div>
                <div class="checkboxes"><div class="checkbox">${h.checkbox('ldap_active',True,class_='small')}</div></div>
            </div>
            <div class="field">
                <div class="label"><label for="ldap_host">${_('Host')}</label></div>
                <div class="input">${h.text('ldap_host',class_='small')}</div>
            </div>
            <div class="field">
                <div class="label"><label for="ldap_port">${_('Port')}</label></div>
                <div class="input">${h.text('ldap_port',class_='small')}</div>
            </div>
            <div class="field">
                <div class="label"><label for="ldap_dn_user">${_('Account')}</label></div>
                <div class="input">${h.text('ldap_dn_user',class_='small')}</div>
            </div>
            <div class="field">
                <div class="label"><label for="ldap_dn_pass">${_('Password')}</label></div>
                <div class="input">${h.password('ldap_dn_pass',class_='small')}</div>
            </div>
            <div class="field">
                <div class="label label-checkbox"><label for="ldap_ldaps">${_('Enable LDAPS')}</label></div>
                <div class="checkboxes"><div class="checkbox">${h.checkbox('ldap_ldaps',True,class_='small')}</div></div>
            </div>
            <div class="field">
                <div class="label"><label for="ldap_tls_reqcert">${_('Certificate Checks')}</label></div>
                <div class="select">${h.select('ldap_tls_reqcert',c.tls_reqcert_cur,c.tls_reqcert_choices,class_='small')}</div>
            </div>
	  <h3>${_('Search settings')}</h3>
            <div class="field">
                <div class="label"><label for="ldap_base_dn">${_('Base DN')}</label></div>
                <div class="input">${h.text('ldap_base_dn',class_='small')}</div>
            </div>
            <div class="field">
                <div class="label"><label for="ldap_filter">${_('LDAP Filter')}</label></div>
                <div class="input">${h.text('ldap_filter',class_='small')}</div>
            </div>
            <div class="field">
                <div class="label"><label for="ldap_search_scope">${_('LDAP Search Scope')}</label></div>
                <div class="select">${h.select('ldap_search_scope',c.search_scope_cur,c.search_scope_choices,class_='small')}</div>
            </div>
	  <h3>${_('Attribute mappings')}</h3>
            <div class="field">
                <div class="label"><label for="ldap_attr_login">${_('Login Attribute')}</label></div>
                <div class="input">${h.text('ldap_attr_login',class_='small')}</div>
            </div>
            <div class="field">
                <div class="label"><label for="ldap_attr_firstname">${_('First Name Attribute')}</label></div>
                <div class="input">${h.text('ldap_attr_firstname',class_='small')}</div>
            </div>
            <div class="field">
                <div class="label"><label for="ldap_attr_lastname">${_('Last Name Attribute')}</label></div>
                <div class="input">${h.text('ldap_attr_lastname',class_='small')}</div>
            </div>
            <div class="field">
                <div class="label"><label for="ldap_attr_email">${_('E-mail Attribute')}</label></div>
                <div class="input">${h.text('ldap_attr_email',class_='small')}</div>
            </div>
            
            <div class="buttons">
            ${h.submit('save','Save',class_="ui-button")}
            </div>              
        </div>
    </div>     
    ${h.end_form()}    
</div>
</%def>