""" 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=', #'--exe', # If your tests need this to be found/run, check they py files are not chmodded +x ] # 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 = False # 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', 'esi', 'bootstrap_pagination', 'allianceauth', 'allianceauth.authentication', 'allianceauth.services', 'allianceauth.eveonline', 'allianceauth.groupmanagement', 'allianceauth.hrapplications', 'allianceauth.timerboard', 'allianceauth.srp', 'allianceauth.optimer', 'allianceauth.corputils', 'allianceauth.fleetactivitytracking', 'allianceauth.fleetup', 'allianceauth.notifications', 'allianceauth.permissions_tool', 'allianceauth.thirdparty.navhelper', 'allianceauth.services.modules.mumble', 'allianceauth.services.modules.discord', 'allianceauth.services.modules.discourse', 'allianceauth.services.modules.ips4', 'allianceauth.services.modules.market', 'allianceauth.services.modules.openfire', 'allianceauth.services.modules.seat', 'allianceauth.services.modules.smf', 'allianceauth.services.modules.phpbb3', 'allianceauth.services.modules.xenforo', 'allianceauth.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 = 'test_allianceauth.urls' LOCALE_PATHS = ( os.path.join(BASE_DIR, 'locale/'), ) ugettext = lambda s: s LANGUAGES = ( ('en', ugettext('English')), ('de', ugettext('German')), ) LOGIN_TOKEN_SCOPES = ['esi-characters.read_opportunities.v1'] TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], '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', 'allianceauth.context_processors.auth_settings', 'allianceauth.notifications.context_processors.user_notification_count', 'allianceauth.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") # Bootstrap messaging css workaround MESSAGE_TAGS = { messages.ERROR: 'danger' } CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.db.DatabaseCache', } } AUTHENTICATION_BACKENDS = ['allianceauth.authentication.backends.StateBackend', 'django.contrib.auth.backends.ModelBackend'] ##################################################### ## ## Auth configuration starts here ## ##################################################### ################# # 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') SITE_NAME = os.environ.get('AA_SITE_NAME', 'Test Alliance Auth') 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') ################### # 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', '') ####################### # 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') ######################## # 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 ###################################### PHPBB3_URL = os.environ.get('AA_FORUM_URL', '') ###################################### # 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', '0118999') DISCORD_BOT_TOKEN = os.environ.get('AA_DISCORD_BOT_TOKEN', 'bottoken') DISCORD_INVITE_CODE = os.environ.get('AA_DISCORD_INVITE_CODE', 'invitecode') DISCORD_APP_ID = os.environ.get('AA_DISCORD_APP_ID', 'appid') DISCORD_APP_SECRET = os.environ.get('AA_DISCORD_APP_SECRET', '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': 'allianceauth.notifications.handlers.NotificationHandler', 'formatter': 'verbose', }, }, 'loggers': { 'allianceauth': { 'handlers': ['console', 'notifications'], 'level': 'DEBUG', }, 'celerytask': { 'handlers': ['console', 'notifications'], 'level': 'DEBUG', }, 'django': { 'handlers': ['console', 'notifications'], 'level': 'ERROR', }, } } LOGGING = None # Comment out to enable logging for debugging