Forked mumble-django project from https://bitbucket.org/Svedrin/mumble-django
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

308 lines
12 KiB

  1. # -*- coding: utf-8 -*-
  2. # kate: space-indent on; indent-width 4; replace-tabs on;
  3. # Django settings for mumble_django project.
  4. """
  5. * Copyright © 2009-2010, Michael "Svedrin" Ziegler <diese-addy@funzt-halt.net>
  6. *
  7. * Mumble-Django is free software; you can redistribute it and/or modify
  8. * it under the terms of the GNU General Public License as published by
  9. * the Free Software Foundation; either version 2 of the License, or
  10. * (at your option) any later version.
  11. *
  12. * This package is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU General Public License for more details.
  16. """
  17. #################################################################
  18. #################################################################
  19. ## ##
  20. ## The slice to use for communication over ZeroC Ice. ##
  21. ## This must be set to the path to the Murmur.ice file that ##
  22. ## resides in your Murmur directory. ##
  23. ## Not used on recent Murmur versions, because the slice file ##
  24. ## can be retrieved from Murmur directly. ##
  25. SLICE = '/usr/share/slice/Murmur.ice' ##
  26. ## ##
  27. ## The include dir to pass to Ice. Set this to a path in which ##
  28. ## $SLICEDIR/Ice/SliceChecksumDict.ice exists. ##
  29. ## Not used on recent Ice versions, because the SLICEDIR can ##
  30. ## be retrieved from Ice directly. ##
  31. SLICEDIR = '/usr/share/slice' ##
  32. ## ##
  33. #################################################################
  34. ## ##
  35. ## The path inside the VirtualHost that M-D lives in: ##
  36. ## ##
  37. MUMBLE_DJANGO_URL = '/' ##
  38. #MUMBLE_DJANGO_URL = '/mumble-django/' ##
  39. ## ##
  40. ## Make sure you use a trailing slash! ##
  41. ## ##
  42. #################################################################
  43. ## ##
  44. ## Mumble-Django will try to auto-detect this value if it ##
  45. ## isn't set, which is the default. However, if this should ##
  46. ## not work as expected, set this to the path where you ##
  47. ## extracted Mumble-Django. ##
  48. ## ##
  49. ## Default: Auto Detection ##
  50. MUMBLE_DJANGO_ROOT = None ##
  51. ## Examples: ##
  52. #MUMBLE_DJANGO_ROOT = '/srv/mumble-django' ##
  53. #MUMBLE_DJANGO_ROOT = 'c:/web/mumble-django' ##
  54. ## ##
  55. #################################################################
  56. ## ##
  57. ## For a basic installation, this is all you need to edit in ##
  58. ## this file, the rest will be handled automatically! ##
  59. ## ##
  60. #################################################################
  61. #################################################################
  62. # Who will receive emails on errors?
  63. ADMINS = (
  64. # ('Your Name', 'your_email@domain.com'),
  65. )
  66. # Show debug information on errors?
  67. # If you want to file a bug report, please enable this option.
  68. DEBUG = True
  69. # These IPs will be delivered the debug templates if DEBUG == True.
  70. INTERNAL_IPS = ['127.0.0.1']
  71. # Local time zone for this installation. Choices can be found here:
  72. # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
  73. # although not all choices may be available on all operating systems.
  74. # If running in a Windows environment this must be set to the same as your
  75. # system time zone.
  76. TIME_ZONE = 'Europe/Berlin'
  77. # Language code for this installation. All choices can be found here:
  78. # http://www.i18nguy.com/unicode/language-identifiers.html
  79. LANGUAGE_CODE = 'en-us'
  80. # The Theme to use. None for the builtin theme.
  81. THEME = None
  82. # URL Template for constructing Gravatars.
  83. GRAVATAR_URL = 'http://www.gravatar.com/avatar/%(hash)s.jpg?d=monsterid&s=%(size)d'
  84. # Automatically set the Gravatar as the user's avatar when creating new users?
  85. USE_GRAVATAR = True
  86. # The default connection string to set for newly created instances.
  87. # Ice:
  88. DEFAULT_CONN = 'Meta:tcp -h 127.0.0.1 -p 6502'
  89. # DBus:
  90. #DEFAULT_CONN = 'net.sourceforge.mumble.murmur'
  91. # Default email address to send mails from.
  92. DEFAULT_FROM_EMAIL = "webmaster@localhost"
  93. # Length of the account activation period, in days.
  94. ACCOUNT_ACTIVATION_DAYS = 30
  95. # Should subchannels be shown, even if there are no players in them?
  96. SHOW_EMPTY_SUBCHANS = False
  97. # Protect the registration form for private servers?
  98. # If set to True, people will need to enter the server password in order to create accounts,
  99. # and will not be able to link existing accounts.
  100. PROTECTED_MODE = False
  101. # Account linking allows users who registered their accounts through Mumble instead of using
  102. # Mumble-Django, to tell MD that this account belongs to them. Then they can use MD to change
  103. # their passwords.
  104. # This will of course require them to enter the password that belongs to the Murmur account,
  105. # and the accounts will only be linked if the password is correct.
  106. # By default, this is enabled only for non-admin accounts, because if an admin account gets
  107. # stolen they could easily take over the server. (So make sure the password can't be easily
  108. # guessed, use at least over 9000 letters, blah blah.)
  109. # This feature is only available if PROTECTED_MODE is not active.
  110. ALLOW_ACCOUNT_LINKING = True # Allow linking in general?
  111. ALLOW_ACCOUNT_LINKING_ADMINS = False # Allow linking for Admin accounts?
  112. # Warning and Critical levels for the Munin plugin. These will be multiplied with the
  113. # server instance's slot count to calculate the real levels.
  114. MUNIN_WARNING = 0.80
  115. MUNIN_CRITICAL = 0.95
  116. # The graph title.
  117. MUNIN_TITLE = 'Mumble Users'
  118. # see <http://munin.projects.linpro.no/wiki/graph_category_list> for a list of valid categories.
  119. MUNIN_CATEGORY = 'mumble'
  120. # Set to True if you do not wish offline servers to appear in the server list.
  121. HIDE_OFFLINE_SERVERS=False
  122. # True to display users above channels in the channel viewer.
  123. USERS_ABOVE_CHANNELS=False
  124. ###################################################################
  125. ## ##
  126. ## The following settings normally do not require changes, and ##
  127. ## you should only change them if you know what you're doing. ##
  128. ## ##
  129. ###################################################################
  130. from os.path import join, dirname, abspath, exists
  131. if not MUMBLE_DJANGO_ROOT or not exists( MUMBLE_DJANGO_ROOT ):
  132. MUMBLE_DJANGO_ROOT = dirname(dirname(abspath(__file__)))
  133. # Default mumble port. If your server runs under this port, it will not be
  134. # included in the links in the Channel Viewer.
  135. MUMBLE_DEFAULT_PORT = 64738
  136. if not MUMBLE_DJANGO_URL:
  137. MUMBLE_DJANGO_URL = '/'
  138. elif MUMBLE_DJANGO_URL[-1] != '/':
  139. MUMBLE_DJANGO_URL = MUMBLE_DJANGO_URL + '/'
  140. # Database settings for Mumble-Django's database. These do NOT need to point
  141. # to Murmur's database, Mumble-Django should use its own!
  142. DATABASES = {
  143. 'default': {
  144. 'ENGINE': 'django.db.backends.sqlite3',
  145. 'NAME': join( MUMBLE_DJANGO_ROOT, 'db', 'mumble-django.db3' ),
  146. 'USER': '',
  147. 'PASSWORD': '',
  148. 'HOST': '',
  149. 'PORT': '',
  150. }
  151. }
  152. # Email settings. only change if the defaults don't work
  153. #EMAIL_HOST = "localhost"
  154. #EMAIL_PORT = 25
  155. #EMAIL_HOST_USER = ""
  156. #EMAIL_HOST_PASSWORD = ""
  157. #EMAIL_USE_TLS = True
  158. TEMPLATE_DEBUG = DEBUG
  159. MANAGERS = ADMINS
  160. SITE_ID = 1
  161. # If you set this to False, Django will make some optimizations so as not
  162. # to load the internationalization machinery.
  163. USE_I18N = True
  164. # Absolute path to the directory that holds media.
  165. MEDIA_ROOT = join( MUMBLE_DJANGO_ROOT, 'htdocs' )
  166. # URL that handles the media served from MEDIA_ROOT.
  167. MEDIA_URL = MUMBLE_DJANGO_URL + 'static/'
  168. STATIC_URL = MEDIA_URL
  169. STATIC_ROOT = MEDIA_ROOT
  170. ## URL to static files of the currently active theme
  171. THEME_URL = '%sstatic/themes/%s/' % ( MUMBLE_DJANGO_URL, THEME )
  172. # URL prefix for admin media -- CSS, JavaScript and images.
  173. ADMIN_MEDIA_PREFIX = MUMBLE_DJANGO_URL + 'media/'
  174. MUMBLE_MEDIA_PREFIX = MUMBLE_DJANGO_URL + 'mumble/media/'
  175. # URL to the login view
  176. LOGIN_URL = MUMBLE_DJANGO_URL + 'accounts/login'
  177. LOGIN_REDIRECT_URL = MUMBLE_DJANGO_URL + 'accounts/profile'
  178. # Automatically generate a .secret.txt file containing the SECRET_KEY.
  179. # Shamelessly stolen from ByteFlow: <http://www.byteflow.su>
  180. try:
  181. SECRET_KEY
  182. except NameError:
  183. SECRET_FILE = join(MUMBLE_DJANGO_ROOT, '.secret.txt')
  184. try:
  185. SECRET_KEY = open(SECRET_FILE).read().strip()
  186. except IOError:
  187. try:
  188. from random import choice
  189. SECRET_KEY = ''.join([choice('abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)') for i in range(50)])
  190. secret = file(SECRET_FILE, 'w')
  191. secret.write(SECRET_KEY)
  192. secret.close()
  193. except IOError:
  194. Exception('Please create a %s file with random characters to generate your secret key!' % SECRET_FILE)
  195. # List of callables that know how to import templates from various sources.
  196. TEMPLATE_LOADERS = (
  197. 'django.template.loaders.filesystem.Loader',
  198. 'django.template.loaders.app_directories.Loader',
  199. # 'django.template.loaders.eggs.Loader',
  200. )
  201. MIDDLEWARE_CLASSES = (
  202. 'django.middleware.common.CommonMiddleware',
  203. 'django.contrib.sessions.middleware.SessionMiddleware',
  204. 'django.middleware.csrf.CsrfViewMiddleware',
  205. 'django.middleware.locale.LocaleMiddleware',
  206. 'django.contrib.auth.middleware.AuthenticationMiddleware',
  207. 'django.contrib.messages.middleware.MessageMiddleware'
  208. )
  209. ROOT_URLCONF = 'pyweb.urls'
  210. if THEME:
  211. TEMPLATE_DIRS = [ join( MUMBLE_DJANGO_ROOT, 'themes', THEME ) ]
  212. else:
  213. TEMPLATE_DIRS = []
  214. TEMPLATE_DIRS.extend((
  215. # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
  216. # Always use forward slashes, even on Windows.
  217. # Don't forget to use absolute paths, not relative paths.
  218. join( MUMBLE_DJANGO_ROOT, 'pyweb', 'templates' ),
  219. ))
  220. TEMPLATE_CONTEXT_PROCESSORS = [
  221. "django.contrib.auth.context_processors.auth",
  222. "django.core.context_processors.debug",
  223. "django.core.context_processors.i18n",
  224. "django.core.context_processors.media",
  225. 'processors.installed_apps',
  226. 'processors.mumble_version',
  227. 'processors.mumble_media_prefix',
  228. ]
  229. if THEME:
  230. TEMPLATE_CONTEXT_PROCESSORS.append('processors.theme_url')
  231. #TEST_RUNNER = 'mumble.testrunner.run_tests'
  232. #TEST_MURMUR_LAB_DIR = join( dirname(MUMBLE_DJANGO_ROOT), 'murmur' )
  233. #TEST_MURMUR_FILES_DIR = join( MUMBLE_DJANGO_ROOT, 'testdata' )
  234. CONVERSIONSQL_ROOT = join( MUMBLE_DJANGO_ROOT, "pyweb", "mumble", "conversionsql" )
  235. INSTALLED_APPS = [
  236. 'django.contrib.auth',
  237. 'django.contrib.admin',
  238. 'django.contrib.contenttypes',
  239. 'django.contrib.sessions',
  240. 'django.contrib.sites',
  241. 'mumble',
  242. ]
  243. def modprobe( name ):
  244. """ Try to import the named module, and if that works add it to INSTALLED_APPS. """
  245. try:
  246. __import__( name )
  247. except ImportError:
  248. pass
  249. else:
  250. INSTALLED_APPS.append( name )
  251. # Check if rosetta is available.
  252. # http://code.google.com/p/django-rosetta
  253. modprobe( "rosetta" )
  254. # Check if django_extensions is available.
  255. modprobe( "django_extensions" )
  256. modprobe( 'registration' )