22 lines
806 B
Python
22 lines
806 B
Python
|
from util.config.validators import BaseValidator, ConfigValidationException
|
||
|
|
||
|
class AppTokenAuthValidator(BaseValidator):
|
||
|
name = "apptoken-auth"
|
||
|
|
||
|
@classmethod
|
||
|
def validate(cls, validator_context):
|
||
|
config = validator_context.config
|
||
|
|
||
|
if config.get('AUTHENTICATION_TYPE', 'Database') != 'AppToken':
|
||
|
return
|
||
|
|
||
|
# Ensure that app tokens are enabled, as they are required.
|
||
|
if not config.get('FEATURE_APP_SPECIFIC_TOKENS', False):
|
||
|
msg = 'Application token support must be enabled to use External Application Token auth'
|
||
|
raise ConfigValidationException(msg)
|
||
|
|
||
|
# Ensure that direct login is disabled.
|
||
|
if config.get('FEATURE_DIRECT_LOGIN', True):
|
||
|
msg = 'Direct login must be disabled to use External Application Token auth'
|
||
|
raise ConfigValidationException(msg)
|