settings.py
103 lines
| 3.0 KiB
| text/x-python
|
PythonLexer
r1012 | # -*- coding: utf-8 -*- | |||
""" | ||||
rhodecode.model.settings | ||||
~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
Settings model for RhodeCode | ||||
:created on Nov 17, 2010 | ||||
:author: marcink | ||||
r1203 | :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com> | |||
r1012 | :license: GPLv3, see COPYING for more details. | |||
""" | ||||
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. | ||||
r1203 | # | |||
r704 | # 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. | ||||
r1203 | # | |||
r704 | # You should have received a copy of the GNU General Public License | |||
r1206 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
r752 | ||||
r1012 | import logging | |||
r752 | from rhodecode.model import BaseModel | |||
r704 | from rhodecode.model.caching_query import FromCache | |||
from rhodecode.model.db import RhodeCodeSettings | ||||
log = logging.getLogger(__name__) | ||||
r752 | class SettingsModel(BaseModel): | |||
r704 | """ | |||
Settings model | ||||
""" | ||||
def get(self, settings_key, cache=False): | ||||
r = self.sa.query(RhodeCodeSettings)\ | ||||
.filter(RhodeCodeSettings.app_settings_name == settings_key).scalar() | ||||
if cache: | ||||
r = r.options(FromCache("sql_cache_short", | ||||
"get_setting_%s" % settings_key)) | ||||
return r | ||||
r892 | def get_app_settings(self, cache=False): | |||
r1203 | """Get's config from database, each config key is prefixed with | |||
'rhodecode_' prefix, than global pylons config is updated with such | ||||
r890 | keys | |||
""" | ||||
r892 | ret = self.sa.query(RhodeCodeSettings) | |||
if cache: | ||||
ret = ret.options(FromCache("sql_cache_short", "get_hg_settings")) | ||||
r756 | ||||
if not ret: | ||||
raise Exception('Could not get application settings !') | ||||
settings = {} | ||||
for each in ret: | ||||
settings['rhodecode_' + each.app_settings_name] = each.app_settings_value | ||||
return settings | ||||
r704 | ||||
def get_ldap_settings(self): | ||||
r705 | """ | |||
Returns ldap settings from database | ||||
:returns: | ||||
ldap_active | ||||
ldap_host | ||||
r1203 | ldap_port | |||
r705 | ldap_ldaps | |||
Thayne Harbaugh
|
r991 | ldap_tls_reqcert | ||
r1203 | ldap_dn_user | |||
ldap_dn_pass | ||||
r705 | ldap_base_dn | |||
Thayne Harbaugh
|
r991 | ldap_filter | ||
ldap_search_scope | ||||
ldap_attr_login | ||||
ldap_attr_firstname | ||||
ldap_attr_lastname | ||||
ldap_attr_email | ||||
r705 | """ | |||
Thayne Harbaugh
|
r991 | # ldap_search_scope | ||
r704 | ||||
r = self.sa.query(RhodeCodeSettings)\ | ||||
.filter(RhodeCodeSettings.app_settings_name\ | ||||
.startswith('ldap_'))\ | ||||
.all() | ||||
fd = {} | ||||
for row in r: | ||||
v = row.app_settings_value | ||||
r1135 | if v in ['true', 'yes', 'on', 'y', 't', '1']: | |||
v = True | ||||
elif v in ['false', 'no', 'off', 'n', 'f', '0']: | ||||
v = False | ||||
r704 | fd.update({row.app_settings_name:v}) | |||
return fd | ||||