mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-09 12:30:15 +02:00
Update celery tasks to new style & remove djcelery Vanilla celery + django-celery-beat take over the role of djcelery. Task schedules are consolidated into settings instead of residing in code. Update docs and example supervisor configs.
555 lines
20 KiB
Python
555 lines
20 KiB
Python
"""
|
|
Alliance Auth Test Suite Django settings.
|
|
"""
|
|
|
|
import os
|
|
|
|
from django.contrib import messages
|
|
|
|
import alliance_auth
|
|
|
|
# Use nose to run all tests
|
|
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
|
|
|
|
NOSE_ARGS = [
|
|
#'--with-coverage',
|
|
#'--cover-package=',
|
|
]
|
|
|
|
# Celery configuration
|
|
CELERY_ALWAYS_EAGER = True # Forces celery to run locally for testing
|
|
|
|
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
|
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(alliance_auth.__file__)))
|
|
|
|
SECRET_KEY = 'testing only'
|
|
|
|
DEBUG = True
|
|
|
|
# Application definition
|
|
|
|
INSTALLED_APPS = [
|
|
'django.contrib.admin',
|
|
'django.contrib.auth',
|
|
'django.contrib.contenttypes',
|
|
'django.contrib.sessions',
|
|
'django.contrib.messages',
|
|
'django.contrib.staticfiles',
|
|
'django.contrib.humanize',
|
|
'django_celery_beat',
|
|
'bootstrapform',
|
|
'authentication',
|
|
'services',
|
|
'eveonline',
|
|
'groupmanagement',
|
|
'hrapplications',
|
|
'timerboard',
|
|
'srp',
|
|
'optimer',
|
|
'corputils',
|
|
'fleetactivitytracking',
|
|
'notifications',
|
|
'esi',
|
|
'permissions_tool',
|
|
'geelweb.django.navhelper',
|
|
'bootstrap_pagination',
|
|
'services.modules.mumble',
|
|
'services.modules.discord',
|
|
'services.modules.discourse',
|
|
'services.modules.ipboard',
|
|
'services.modules.ips4',
|
|
'services.modules.market',
|
|
'services.modules.openfire',
|
|
'services.modules.seat',
|
|
'services.modules.smf',
|
|
'services.modules.phpbb3',
|
|
'services.modules.xenforo',
|
|
'services.modules.teamspeak3',
|
|
'django_nose',
|
|
]
|
|
|
|
MIDDLEWARE = [
|
|
'django.middleware.security.SecurityMiddleware',
|
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
|
'django.middleware.common.CommonMiddleware',
|
|
'django.middleware.csrf.CsrfViewMiddleware',
|
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
|
'django.contrib.messages.middleware.MessageMiddleware',
|
|
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
|
'django.middleware.locale.LocaleMiddleware',
|
|
]
|
|
|
|
ROOT_URLCONF = 'alliance_auth.urls'
|
|
|
|
LOCALE_PATHS = (
|
|
os.path.join(BASE_DIR, 'locale/'),
|
|
)
|
|
|
|
ugettext = lambda s: s
|
|
LANGUAGES = (
|
|
('en', ugettext('English')),
|
|
('de', ugettext('German')),
|
|
)
|
|
|
|
TEMPLATES = [
|
|
{
|
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
|
'DIRS': [
|
|
os.path.join(BASE_DIR, 'customization/templates'),
|
|
os.path.join(BASE_DIR, 'stock/templates'),
|
|
],
|
|
'APP_DIRS': True,
|
|
'OPTIONS': {
|
|
'context_processors': [
|
|
'django.template.context_processors.debug',
|
|
'django.template.context_processors.request',
|
|
'django.contrib.auth.context_processors.auth',
|
|
'django.contrib.messages.context_processors.messages',
|
|
'django.template.context_processors.i18n',
|
|
'django.template.context_processors.media',
|
|
'django.template.context_processors.static',
|
|
'django.template.context_processors.tz',
|
|
'services.context_processors.auth_settings',
|
|
'notifications.context_processors.user_notification_count',
|
|
'authentication.context_processors.states',
|
|
'authentication.context_processors.membership_state',
|
|
'groupmanagement.context_processors.can_manage_groups',
|
|
],
|
|
},
|
|
},
|
|
]
|
|
|
|
# Database
|
|
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases
|
|
|
|
DATABASES = {
|
|
'default': {
|
|
'ENGINE': 'django.db.backends.sqlite3',
|
|
'NAME': 'alliance_auth',
|
|
'USER': os.environ.get('AA_DB_DEFAULT_USER', None),
|
|
'PASSWORD': os.environ.get('AA_DB_DEFAULT_PASSWORD', None),
|
|
'HOST': os.environ.get('AA_DB_DEFAULT_HOST', None)
|
|
},
|
|
}
|
|
|
|
LOGIN_URL = 'auth_login_user'
|
|
|
|
SUPERUSER_STATE_BYPASS = 'True' == os.environ.get('AA_SUPERUSER_STATE_BYPASS', 'True')
|
|
|
|
# Internationalization
|
|
# https://docs.djangoproject.com/en/1.10/topics/i18n/
|
|
|
|
LANGUAGE_CODE = os.environ.get('AA_LANGUAGE_CODE', 'en')
|
|
|
|
TIME_ZONE = os.environ.get('AA_TIME_ZONE', 'UTC')
|
|
|
|
USE_I18N = True
|
|
|
|
USE_L10N = True
|
|
|
|
USE_TZ = True
|
|
|
|
|
|
# Static files (CSS, JavaScript, Images)
|
|
|
|
STATIC_URL = '/static/'
|
|
STATIC_ROOT = os.path.join(BASE_DIR, "static")
|
|
STATICFILES_DIRS = (
|
|
os.path.join(BASE_DIR, "customization/static"),
|
|
os.path.join(BASE_DIR, "stock/static"),
|
|
)
|
|
|
|
# Bootstrap messaging css workaround
|
|
MESSAGE_TAGS = {
|
|
messages.ERROR: 'danger'
|
|
}
|
|
|
|
CACHES = {
|
|
'default': {
|
|
'BACKEND': 'django.core.cache.backends.dummy.DummyCache',
|
|
}
|
|
}
|
|
|
|
#####################################################
|
|
##
|
|
## Auth configuration starts here
|
|
##
|
|
#####################################################
|
|
|
|
###########################
|
|
# ALLIANCE / CORP TOGGLE
|
|
###########################
|
|
# Specifies to run membership checks against corp or alliance
|
|
# Set to FALSE for alliance
|
|
# Set to TRUE for corp
|
|
###########################
|
|
IS_CORP = 'True' == os.environ.get('AA_IS_CORP', 'True')
|
|
|
|
#################
|
|
# EMAIL SETTINGS
|
|
#################
|
|
# DOMAIN - The alliance auth domain_url
|
|
# EMAIL_HOST - SMTP Server URL
|
|
# EMAIL_PORT - SMTP Server PORT
|
|
# EMAIL_HOST_USER - Email Username (for gmail, the entire address)
|
|
# EMAIL_HOST_PASSWORD - Email Password
|
|
# EMAIL_USE_TLS - Set to use TLS encryption
|
|
#################
|
|
DOMAIN = os.environ.get('AA_DOMAIN', 'https://example.com')
|
|
EMAIL_HOST = os.environ.get('AA_EMAIL_HOST', 'smtp.example.com')
|
|
EMAIL_PORT = int(os.environ.get('AA_EMAIL_PORT', '587'))
|
|
EMAIL_HOST_USER = os.environ.get('AA_EMAIL_HOST_USER', '')
|
|
EMAIL_HOST_PASSWORD = os.environ.get('AA_EMAIL_HOST_PASSWORD', '')
|
|
EMAIL_USE_TLS = 'True' == os.environ.get('AA_EMAIL_USE_TLS', 'True')
|
|
|
|
####################
|
|
# Front Page Links
|
|
####################
|
|
# KILLBOARD_URL - URL for your killboard. Blank to hide link
|
|
# MEDIA_URL - URL for your media page (youtube etc). Blank to hide link
|
|
# FORUM_URL - URL for your forums. Blank to hide link
|
|
# SITE_NAME - Name of the auth site.
|
|
####################
|
|
KILLBOARD_URL = os.environ.get('AA_KILLBOARD_URL', '')
|
|
EXTERNAL_MEDIA_URL = os.environ.get('AA_EXTERNAL_MEDIA_URL', '')
|
|
FORUM_URL = os.environ.get('AA_FORUM_URL', '')
|
|
SITE_NAME = os.environ.get('AA_SITE_NAME', 'Test Alliance Auth')
|
|
|
|
###################
|
|
# SSO Settings
|
|
###################
|
|
# Optional SSO.
|
|
# Get client ID and client secret from registering an app at
|
|
# https://developers.eveonline.com/
|
|
# Callback URL should be http://mydomain.com/sso/callback
|
|
# Leave callback blank to hide SSO button on login page
|
|
###################
|
|
ESI_SSO_CLIENT_ID = os.environ.get('AA_ESI_SSO_CLIENT_ID', '')
|
|
ESI_SSO_CLIENT_SECRET = os.environ.get('AA_ESI_SSO_CLIENT_SECRET', '')
|
|
ESI_SSO_CALLBACK_URL = os.environ.get('AA_ESI_SSO_CALLBACK_URL', '')
|
|
|
|
#########################
|
|
# Default Group Settings
|
|
#########################
|
|
# DEFAULT_AUTH_GROUP - Default group members are put in
|
|
# DEFAULT_BLUE_GROUP - Default group for blue members
|
|
# MEMBER_CORP_GROUPS - Assign members to a group representing their main corp
|
|
# BLUE_CORP_GROUPS - Assign blues to a group representing their main corp
|
|
#########################
|
|
DEFAULT_AUTH_GROUP = os.environ.get('AA_DEFAULT_ALLIANCE_GROUP', 'Member')
|
|
DEFAULT_BLUE_GROUP = os.environ.get('AA_DEFAULT_BLUE_GROUP', 'Blue')
|
|
MEMBER_CORP_GROUPS = 'True' == os.environ.get('AA_MEMBER_CORP_GROUPS', 'True')
|
|
MEMBER_ALLIANCE_GROUPS = 'True' == os.environ.get('AA_MEMBER_ALLIANCE_GROUPS', 'False')
|
|
BLUE_CORP_GROUPS = 'True' == os.environ.get('AA_BLUE_CORP_GROUPS', 'False')
|
|
BLUE_ALLIANCE_GROUPS = 'True' == os.environ.get('AA_BLUE_ALLIANCE_GROUPS', 'False')
|
|
|
|
#########################
|
|
# Corp Configuration
|
|
#########################
|
|
# If running in alliance mode, the following should be for the executor corp#
|
|
# CORP_ID - Set this to your corp ID (get this from https://zkillboard.com/corporation/#######)
|
|
# CORP_NAME - Set this to your Corporation Name
|
|
# CORP_API_ID - Set this to the api id for the corp API key
|
|
# CORP_API_VCODE - Set this to the api vcode for the corp API key
|
|
########################
|
|
CORP_ID = os.environ.get('AA_CORP_ID', '1234')
|
|
CORP_NAME = os.environ.get('AA_CORP_NAME', 'Alliance Auth Test Corp')
|
|
CORP_API_ID = os.environ.get('AA_CORP_API_ID', '')
|
|
CORP_API_VCODE = os.environ.get('AA_CORP_API_VCODE', '')
|
|
|
|
#########################
|
|
# Alliance Configuration
|
|
#########################
|
|
# ALLIANCE_ID - Set this to your Alliance ID (get this from https://zkillboard.com/alliance/#######)
|
|
# ALLIANCE_NAME - Set this to your Alliance Name
|
|
########################
|
|
ALLIANCE_ID = os.environ.get('AA_ALLIANCE_ID', '12345')
|
|
ALLIANCE_NAME = os.environ.get('AA_ALLIANCE_NAME', 'Alliance Auth Test Alliance')
|
|
|
|
########################
|
|
# API Configuration
|
|
########################
|
|
# MEMBER_API_MASK - Numeric value of minimum API mask required for members
|
|
# MEMBER_API_ACCOUNT - Require API to be for Account and not character restricted
|
|
# BLUE_API_MASK - Numeric value of minimum API mask required for blues
|
|
# BLUE_API_ACCOUNT - Require API to be for Account and not character restricted
|
|
# REJECT_OLD_APIS - Require each submitted API be newer than the latest submitted API
|
|
# REJECT_OLD_APIS_MARGIN - Margin from latest submitted API ID within which a newly submitted API is still accepted
|
|
# API_SSO_VALIDATION - Require users to prove ownership of newly entered API keys via SSO
|
|
# Requires SSO to be configured.
|
|
#######################
|
|
MEMBER_API_MASK = os.environ.get('AA_MEMBER_API_MASK', 268435455)
|
|
MEMBER_API_ACCOUNT = 'True' == os.environ.get('AA_MEMBER_API_ACCOUNT', 'True')
|
|
BLUE_API_MASK = os.environ.get('AA_BLUE_API_MASK', 8388608)
|
|
BLUE_API_ACCOUNT = 'True' == os.environ.get('AA_BLUE_API_ACCOUNT', 'True')
|
|
REJECT_OLD_APIS = 'True' == os.environ.get('AA_REJECT_OLD_APIS', 'False')
|
|
REJECT_OLD_APIS_MARGIN = os.environ.get('AA_REJECT_OLD_APIS_MARGIN', 50)
|
|
API_SSO_VALIDATION = 'True' == os.environ.get('AA_API_SSO_VALIDATION', 'False')
|
|
|
|
#######################
|
|
# EVE Provider Settings
|
|
#######################
|
|
# EVEONLINE_CHARACTER_PROVIDER - Name of default data source for getting eve character data
|
|
# EVEONLINE_CORP_PROVIDER - Name of default data source for getting eve corporation data
|
|
# EVEONLINE_ALLIANCE_PROVIDER - Name of default data source for getting eve alliance data
|
|
# EVEONLINE_ITEMTYPE_PROVIDER - Name of default data source for getting eve item type data
|
|
#
|
|
# Available sources are 'esi' and 'xml'. Leaving blank results in the default 'esi' being used.
|
|
#######################
|
|
EVEONLINE_CHARACTER_PROVIDER = os.environ.get('AA_EVEONLINE_CHARACTER_PROVIDER', 'xml')
|
|
EVEONLINE_CORP_PROVIDER = os.environ.get('AA_EVEONLINE_CORP_PROVIDER', 'xml')
|
|
EVEONLINE_ALLIANCE_PROVIDER = os.environ.get('AA_EVEONLINE_ALLIANCE_PROVIDER', 'xml')
|
|
EVEONLINE_ITEMTYPE_PROVIDER = os.environ.get('AA_EVEONLINE_ITEMTYPE_PROVIDER', 'xml')
|
|
|
|
#####################
|
|
# Alliance Market
|
|
#####################
|
|
MARKET_URL = os.environ.get('AA_MARKET_URL', 'http://yourdomain.com/market')
|
|
|
|
#####################
|
|
# HR Configuration
|
|
#####################
|
|
# JACK_KNIFE_URL - Url for the audit page of API Jack knife
|
|
# Should seriously replace with your own.
|
|
#####################
|
|
JACK_KNIFE_URL = os.environ.get('AA_JACK_KNIFE_URL', 'http://example.com/eveapi/audit.php')
|
|
|
|
#####################
|
|
# Forum Configuration
|
|
#####################
|
|
# IPBOARD_ENDPOINT - Api endpoint if using ipboard
|
|
# IPBOARD_APIKEY - Api key to interact with ipboard
|
|
# IPBOARD_APIMODULE - Module for alliance auth *leave alone*
|
|
#####################
|
|
IPBOARD_ENDPOINT = os.environ.get('AA_IPBOARD_ENDPOINT', 'example.com/interface/board/index.php')
|
|
IPBOARD_APIKEY = os.environ.get('AA_IPBOARD_APIKEY', 'somekeyhere')
|
|
IPBOARD_APIMODULE = 'aa'
|
|
|
|
########################
|
|
# XenForo Configuration
|
|
########################
|
|
XENFORO_ENDPOINT = os.environ.get('AA_XENFORO_ENDPOINT', 'example.com/api.php')
|
|
XENFORO_DEFAULT_GROUP = os.environ.get('AA_XENFORO_DEFAULT_GROUP', 0)
|
|
XENFORO_APIKEY = os.environ.get('AA_XENFORO_APIKEY', 'yourapikey')
|
|
#####################
|
|
|
|
######################
|
|
# Jabber Configuration
|
|
######################
|
|
# JABBER_URL - Jabber address url
|
|
# JABBER_PORT - Jabber service portal
|
|
# JABBER_SERVER - Jabber server url
|
|
# OPENFIRE_ADDRESS - Address of the openfire admin console including port
|
|
# Please use http with 9090 or https with 9091
|
|
# OPENFIRE_SECRET_KEY - Openfire REST API secret key
|
|
# BROADCAST_USER - Broadcast user JID
|
|
# BROADCAST_USER_PASSWORD - Broadcast user password
|
|
######################
|
|
JABBER_URL = os.environ.get('AA_JABBER_URL', "example.com")
|
|
JABBER_PORT = int(os.environ.get('AA_JABBER_PORT', '5223'))
|
|
JABBER_SERVER = os.environ.get('AA_JABBER_SERVER', "example.com")
|
|
OPENFIRE_ADDRESS = os.environ.get('AA_OPENFIRE_ADDRESS', "http://example.com:9090")
|
|
OPENFIRE_SECRET_KEY = os.environ.get('AA_OPENFIRE_SECRET_KEY', "somekey")
|
|
BROADCAST_USER = os.environ.get('AA_BROADCAST_USER', "broadcast@") + JABBER_URL
|
|
BROADCAST_USER_PASSWORD = os.environ.get('AA_BROADCAST_USER_PASSWORD', "somepassword")
|
|
BROADCAST_SERVICE_NAME = os.environ.get('AA_BROADCAST_SERVICE_NAME', "broadcast")
|
|
|
|
######################################
|
|
# Mumble Configuration
|
|
######################################
|
|
# MUMBLE_URL - Mumble server url
|
|
# MUMBLE_SERVER_ID - Mumble server id
|
|
######################################
|
|
MUMBLE_URL = os.environ.get('AA_MUMBLE_URL', "example.com")
|
|
MUMBLE_SERVER_ID = int(os.environ.get('AA_MUMBLE_SERVER_ID', '1'))
|
|
|
|
######################################
|
|
# PHPBB3 Configuration
|
|
######################################
|
|
|
|
######################################
|
|
# Teamspeak3 Configuration
|
|
######################################
|
|
# TEAMSPEAK3_SERVER_IP - Teamspeak3 server ip
|
|
# TEAMSPEAK3_SERVER_PORT - Teamspeak3 server port
|
|
# TEAMSPEAK3_SERVERQUERY_USER - Teamspeak3 serverquery username
|
|
# TEAMSPEAK3_SERVERQUERY_PASSWORD - Teamspeak3 serverquery password
|
|
# TEAMSPEAK3_VIRTUAL_SERVER - Virtual server id
|
|
# TEAMSPEAK3_AUTHED_GROUP_ID - Default authed group id
|
|
# TEAMSPEAK3_PUBLIC_URL - teamspeak3 public url used for link creation
|
|
######################################
|
|
TEAMSPEAK3_SERVER_IP = os.environ.get('AA_TEAMSPEAK3_SERVER_IP', '127.0.0.1')
|
|
TEAMSPEAK3_SERVER_PORT = int(os.environ.get('AA_TEAMSPEAK3_SERVER_PORT', '10011'))
|
|
TEAMSPEAK3_SERVERQUERY_USER = os.environ.get('AA_TEAMSPEAK3_SERVERQUERY_USER', 'serveradmin')
|
|
TEAMSPEAK3_SERVERQUERY_PASSWORD = os.environ.get('AA_TEAMSPEAK3_SERVERQUERY_PASSWORD', 'passwordhere')
|
|
TEAMSPEAK3_VIRTUAL_SERVER = int(os.environ.get('AA_TEAMSPEAK3_VIRTUAL_SERVER', '1'))
|
|
TEAMSPEAK3_PUBLIC_URL = os.environ.get('AA_TEAMSPEAK3_PUBLIC_URL', 'example.com')
|
|
|
|
######################################
|
|
# Discord Configuration
|
|
######################################
|
|
# DISCORD_GUILD_ID - ID of the guild to manage
|
|
# DISCORD_BOT_TOKEN - oauth token of the app bot user
|
|
# DISCORD_INVITE_CODE - invite code to the server
|
|
# DISCORD_APP_ID - oauth app client ID
|
|
# DISCORD_APP_SECRET - oauth app secret
|
|
# DISCORD_CALLBACK_URL - oauth callback url
|
|
# DISCORD_SYNC_NAMES - enable to force discord nicknames to be set to eve char name (bot needs Manage Nicknames permission)
|
|
######################################
|
|
DISCORD_GUILD_ID = os.environ.get('AA_DISCORD_GUILD_ID', '')
|
|
DISCORD_BOT_TOKEN = os.environ.get('AA_DISCORD_BOT_TOKEN', '')
|
|
DISCORD_INVITE_CODE = os.environ.get('AA_DISCORD_INVITE_CODE', '')
|
|
DISCORD_APP_ID = os.environ.get('AA_DISCORD_APP_ID', '')
|
|
DISCORD_APP_SECRET = os.environ.get('AA_DISCORD_APP_SECRET', '')
|
|
DISCORD_CALLBACK_URL = os.environ.get('AA_DISCORD_CALLBACK_URL', 'http://example.com/discord_callback')
|
|
DISCORD_SYNC_NAMES = 'True' == os.environ.get('AA_DISCORD_SYNC_NAMES', 'False')
|
|
|
|
######################################
|
|
# Discourse Configuration
|
|
######################################
|
|
# DISCOURSE_URL - Web address of the forums (no trailing slash)
|
|
# DISCOURSE_API_USERNAME - API account username
|
|
# DISCOURSE_API_KEY - API Key
|
|
# DISCOURSE_SSO_SECRET - SSO secret key
|
|
######################################
|
|
DISCOURSE_URL = os.environ.get('AA_DISCOURSE_URL', 'https://example.com')
|
|
DISCOURSE_API_USERNAME = os.environ.get('AA_DISCOURSE_API_USERNAME', '')
|
|
DISCOURSE_API_KEY = os.environ.get('AA_DISCOURSE_API_KEY', '')
|
|
DISCOURSE_SSO_SECRET = 'd836444a9e4084d5b224a60c208dce14'
|
|
# Example secret from https://meta.discourse.org/t/official-single-sign-on-for-discourse/13045
|
|
|
|
#####################################
|
|
# IPS4 Configuration
|
|
#####################################
|
|
# IPS4_URL - base url of the IPS4 install (no trailing slash)
|
|
# IPS4_API_KEY - API key provided by IPS4
|
|
#####################################
|
|
IPS4_URL = os.environ.get('AA_IPS4_URL', 'http://example.com/ips4')
|
|
IPS4_API_KEY = os.environ.get('AA_IPS4_API_KEY', '')
|
|
|
|
#####################################
|
|
# SEAT Configuration
|
|
#####################################
|
|
# SEAT_URL - base url of the seat install (no trailing slash)
|
|
# SEAT_XTOKEN - API key X-Token provided by SeAT
|
|
#####################################
|
|
SEAT_URL = os.environ.get('AA_SEAT_URL', 'http://example.com/seat')
|
|
SEAT_XTOKEN = os.environ.get('AA_SEAT_XTOKEN', 'tokentokentoken')
|
|
|
|
######################################
|
|
# SMF Configuration
|
|
######################################
|
|
SMF_URL = os.environ.get('AA_SMF_URL', '')
|
|
|
|
######################################
|
|
# Fleet-Up Configuration
|
|
######################################
|
|
# FLEETUP_APP_KEY - The app key from http://fleet-up.com/Api/MyApps
|
|
# FLEETUP_USER_ID - The user id from http://fleet-up.com/Api/MyKeys
|
|
# FLEETUP_API_ID - The API id from http://fleet-up.com/Api/MyKeys
|
|
# FLEETUP_GROUP_ID - The id of the group you want to pull data from, see http://fleet-up.com/Api/Endpoints#groups_mygroupmemberships
|
|
######################################
|
|
FLEETUP_APP_KEY = os.environ.get('AA_FLEETUP_APP_KEY', '')
|
|
FLEETUP_USER_ID = os.environ.get('AA_FLEETUP_USER_ID', '')
|
|
FLEETUP_API_ID = os.environ.get('AA_FLEETUP_API_ID', '')
|
|
FLEETUP_GROUP_ID = os.environ.get('AA_FLEETUP_GROUP_ID', '')
|
|
|
|
PASSWORD_HASHERS = [
|
|
'django.contrib.auth.hashers.MD5PasswordHasher',
|
|
]
|
|
|
|
|
|
LOGGING = {
|
|
'version': 1,
|
|
'disable_existing_loggers': False,
|
|
'formatters': {
|
|
'verbose': {
|
|
'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
|
|
'datefmt' : "%d/%b/%Y %H:%M:%S"
|
|
},
|
|
'simple': {
|
|
'format': '%(levelname)s %(message)s'
|
|
},
|
|
},
|
|
'handlers': {
|
|
'console': {
|
|
'level': 'DEBUG', # edit this line to change logging level to console
|
|
'class': 'logging.StreamHandler',
|
|
'formatter': 'verbose',
|
|
},
|
|
'notifications': { # creates notifications for users with logging_notifications permission
|
|
'level': 'ERROR', # edit this line to change logging level to notifications
|
|
'class': 'notifications.handlers.NotificationHandler',
|
|
'formatter': 'verbose',
|
|
},
|
|
},
|
|
'loggers': {
|
|
'authentication': {
|
|
'handlers': ['console', 'notifications'],
|
|
'level': 'DEBUG',
|
|
},
|
|
'celerytask': {
|
|
'handlers': ['console', 'notifications'],
|
|
'level': 'DEBUG',
|
|
},
|
|
'eveonline': {
|
|
'handlers': ['console', 'notifications'],
|
|
'level': 'DEBUG',
|
|
},
|
|
'groupmanagement': {
|
|
'handlers': ['console', 'notifications'],
|
|
'level': 'DEBUG',
|
|
},
|
|
'hrapplications': {
|
|
'handlers': ['console', 'notifications'],
|
|
'level': 'DEBUG',
|
|
},
|
|
'portal': {
|
|
'handlers': ['console', 'notifications'],
|
|
'level': 'DEBUG',
|
|
},
|
|
'registration': {
|
|
'handlers': ['console', 'notifications'],
|
|
'level': 'DEBUG',
|
|
},
|
|
'services': {
|
|
'handlers': ['console', 'notifications'],
|
|
'level': 'DEBUG',
|
|
},
|
|
'srp': {
|
|
'handlers': ['console', 'notifications'],
|
|
'level': 'DEBUG',
|
|
},
|
|
'timerboard': {
|
|
'handlers': ['console', 'notifications'],
|
|
'level': 'DEBUG',
|
|
},
|
|
'sigtracker': {
|
|
'handlers': ['console', 'notifications'],
|
|
'level': 'DEBUG',
|
|
},
|
|
'optimer': {
|
|
'handlers': ['console', 'notifications'],
|
|
'level': 'DEBUG',
|
|
},
|
|
'corputils': {
|
|
'handlers': ['console', 'notifications'],
|
|
'level': 'DEBUG',
|
|
},
|
|
'fleetactivitytracking': {
|
|
'handlers': ['console', 'notifications'],
|
|
'level': 'ERROR',
|
|
},
|
|
'util': {
|
|
'handlers': ['console', 'notifications'],
|
|
'level': 'DEBUG',
|
|
},
|
|
'django': {
|
|
'handlers': ['console', 'notifications'],
|
|
'level': 'ERROR',
|
|
},
|
|
}
|
|
}
|
|
|
|
LOGGING = None # Comment out to enable logging for debugging
|