##// END OF EJS Templates
#47 implemented Adding of new repo_groups+forms+validators. Fixed sorting of repo groups by main names in multiple locations. Removed some unneeded calls to self.sa for exchange to .query() methods....
#47 implemented Adding of new repo_groups+forms+validators. Fixed sorting of repo groups by main names in multiple locations. Removed some unneeded calls to self.sa for exchange to .query() methods. Added new db unique key for Group

File last commit:

r1307:c1516b35 beta
r1345:3bce31f0 beta
Show More
ldap_settings.py
137 lines | 4.9 KiB | text/x-python | PythonLexer
fixes #77 moved out ldap config to it's own section
r769 # -*- coding: utf-8 -*-
"""
updated docs on every controller
r861 rhodecode.controllers.admin.ldap_settings
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fixes #77 moved out ldap config to it's own section
r769
ldap controller for RhodeCode
source code cleanup: remove trailing white space, normalize file endings
r1203
fixes #77 moved out ldap config to it's own section
r769 :created_on: Nov 26, 2010
:author: marcink
source code cleanup: remove trailing white space, normalize file endings
r1203 :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com>
fixes #77 moved out ldap config to it's own section
r769 :license: GPLv3, see COPYING for more details.
"""
fixed license issue #149
r1206 # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
source code cleanup: remove trailing white space, normalize file endings
r1203 #
fixes #77 moved out ldap config to it's own section
r769 # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
source code cleanup: remove trailing white space, normalize file endings
r1203 #
fixes #77 moved out ldap config to it's own section
r769 # You should have received a copy of the GNU General Public License
fixed license issue #149
r1206 # along with this program. If not, see <http://www.gnu.org/licenses/>.
fixes #77 moved out ldap config to it's own section
r769 import logging
import formencode
import traceback
from formencode import htmlfill
from pylons import request, response, session, tmpl_context as c, url
from pylons.controllers.util import abort, redirect
from pylons.i18n.translation import _
added some fixes to LDAP form re-submition, new simples ldap-settings getter....
r1292 from sqlalchemy.exc import DatabaseError
fixes #77 moved out ldap config to it's own section
r769 from rhodecode.lib.base import BaseController, render
from rhodecode.lib import helpers as h
from rhodecode.lib.auth import LoginRequired, HasPermissionAllDecorator
added some fixes to LDAP form re-submition, new simples ldap-settings getter....
r1292 from rhodecode.lib.exceptions import LdapImportError
fixes #77 moved out ldap config to it's own section
r769 from rhodecode.model.forms import LdapSettingsForm
added some fixes to LDAP form re-submition, new simples ldap-settings getter....
r1292 from rhodecode.model.db import RhodeCodeSettings
fixes #77 moved out ldap config to it's own section
r769
log = logging.getLogger(__name__)
class LdapSettingsController(BaseController):
PEP8ify - controllers
r1245 search_scope_choices = [('BASE', _('BASE'),),
Thayne Harbaugh
Improve LDAP authentication...
r991 ('ONELEVEL', _('ONELEVEL'),),
PEP8ify - controllers
r1245 ('SUBTREE', _('SUBTREE'),),
Thayne Harbaugh
Improve LDAP authentication...
r991 ]
search_scope_default = 'SUBTREE'
PEP8ify - controllers
r1245 tls_reqcert_choices = [('NEVER', _('NEVER'),),
('ALLOW', _('ALLOW'),),
('TRY', _('TRY'),),
Thayne Harbaugh
Improve LDAP authentication...
r991 ('DEMAND', _('DEMAND'),),
PEP8ify - controllers
r1245 ('HARD', _('HARD'),),
Thayne Harbaugh
Improve LDAP authentication...
r991 ]
tls_reqcert_default = 'DEMAND'
"Lorenzo M. Catucci"
Enable start_tls connection encryption.
r1290 tls_kind_choices = [('PLAIN', _('No encryption'),),
('LDAPS', _('LDAPS connection'),),
('START_TLS', _('START_TLS on LDAP connection'),)
]
tls_kind_default = 'PLAIN'
fixes #77 moved out ldap config to it's own section
r769 @LoginRequired()
@HasPermissionAllDecorator('hg.admin')
def __before__(self):
c.admin_user = session.get('admin_user')
c.admin_username = session.get('admin_username')
Thayne Harbaugh
Improve LDAP authentication...
r991 c.search_scope_choices = self.search_scope_choices
PEP8ify - controllers
r1245 c.tls_reqcert_choices = self.tls_reqcert_choices
"Lorenzo M. Catucci"
Enable start_tls connection encryption.
r1290 c.tls_kind_choices = self.tls_kind_choices
added some fixes to LDAP form re-submition, new simples ldap-settings getter....
r1292
c.search_scope_cur = self.search_scope_default
c.tls_reqcert_cur = self.tls_reqcert_default
c.tls_kind_cur = self.tls_kind_default
fixes #77 moved out ldap config to it's own section
r769 super(LdapSettingsController, self).__before__()
def index(self):
added some fixes to LDAP form re-submition, new simples ldap-settings getter....
r1292 defaults = RhodeCodeSettings.get_ldap_settings()
Thayne Harbaugh
Improve LDAP authentication...
r991 c.search_scope_cur = defaults.get('ldap_search_scope')
PEP8ify - controllers
r1245 c.tls_reqcert_cur = defaults.get('ldap_tls_reqcert')
"Lorenzo M. Catucci"
Enable start_tls connection encryption.
r1290 c.tls_kind_cur = defaults.get('ldap_tls_kind')
fixes #77 moved out ldap config to it's own section
r769
return htmlfill.render(
render('admin/ldap/ldap.html'),
defaults=defaults,
encoding="UTF-8",
force_defaults=True,)
def ldap_settings(self):
fixed spelling mistakes, and some minor docs bugs
r860 """POST ldap create and store ldap settings"""
fixes #77 moved out ldap config to it's own section
r769
Thayne Harbaugh
Improve LDAP authentication...
r991 _form = LdapSettingsForm([x[0] for x in self.tls_reqcert_choices],
"Lorenzo M. Catucci"
Enable start_tls connection encryption.
r1290 [x[0] for x in self.search_scope_choices],
[x[0] for x in self.tls_kind_choices])()
fixes #77 moved out ldap config to it's own section
r769
try:
form_result = _form.to_python(dict(request.POST))
try:
for k, v in form_result.items():
if k.startswith('ldap_'):
added some fixes to LDAP form re-submition, new simples ldap-settings getter....
r1292 setting = RhodeCodeSettings.get_by_name(k)
fixes #77 moved out ldap config to it's own section
r769 setting.app_settings_value = v
self.sa.add(setting)
self.sa.commit()
h.flash(_('Ldap settings updated successfully'),
category='success')
except (DatabaseError,):
raise
except LdapImportError:
fixed warning message
r772 h.flash(_('Unable to activate ldap. The "python-ldap" library '
fixes #77 moved out ldap config to it's own section
r769 'is missing.'), category='warning')
except formencode.Invalid, errors:
added some fixes to LDAP form re-submition, new simples ldap-settings getter....
r1292 e = errors.error_dict or {}
fixes #77 moved out ldap config to it's own section
r769
return htmlfill.render(
render('admin/ldap/ldap.html'),
defaults=errors.value,
added some fixes to LDAP form re-submition, new simples ldap-settings getter....
r1292 errors=e,
fixes #77 moved out ldap config to it's own section
r769 prefix_error=False,
encoding="UTF-8")
except Exception:
log.error(traceback.format_exc())
fixed spelling mistakes, and some minor docs bugs
r860 h.flash(_('error occurred during update of ldap settings'),
fixes #77 moved out ldap config to it's own section
r769 category='error')
return redirect(url('ldap_home'))