mirror of
https://github.com/binary-kitchen/doorlockd
synced 2024-12-22 02:14:26 +01:00
Authenticator: Add blacklist
Signed-off-by: Ralf Ramsauer <ralf@binary-kitchen.de>
This commit is contained in:
parent
18264b0449
commit
1c403437b3
2
etc/doorlockd.blacklist
Normal file
2
etc/doorlockd.blacklist
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# Place blacklisted usernames here, separated by newlines. Blacklist applies to
|
||||||
|
# all authentication backends.
|
@ -15,6 +15,8 @@ SOUNDS = True
|
|||||||
# Local
|
# Local
|
||||||
# LOCAL_USER_DB = /etc/doorlockd.passwd
|
# LOCAL_USER_DB = /etc/doorlockd.passwd
|
||||||
|
|
||||||
|
# USER_BLACKLIST = /etc/doorlockd.blacklist
|
||||||
|
|
||||||
TITLE = Binary Kitchen Doorlock
|
TITLE = Binary Kitchen Doorlock
|
||||||
ROOM = Hauptraum
|
ROOM = Hauptraum
|
||||||
WELCOME = Willkommen in der Binary Kitchen
|
WELCOME = Willkommen in der Binary Kitchen
|
||||||
|
@ -43,6 +43,17 @@ class Authenticator:
|
|||||||
self._simulate = cfg.boolean('SIMULATE_AUTH')
|
self._simulate = cfg.boolean('SIMULATE_AUTH')
|
||||||
self._backends = set()
|
self._backends = set()
|
||||||
|
|
||||||
|
f_blacklist = cfg.str('USER_BLACKLIST')
|
||||||
|
self._user_blacklist = set()
|
||||||
|
if f_blacklist:
|
||||||
|
with open(f_blacklist, 'r') as f:
|
||||||
|
for line in f:
|
||||||
|
line = line.strip()
|
||||||
|
if line.startswith('#'):
|
||||||
|
continue
|
||||||
|
if line:
|
||||||
|
self._user_blacklist.add(line)
|
||||||
|
|
||||||
if self._simulate:
|
if self._simulate:
|
||||||
return
|
return
|
||||||
|
|
||||||
@ -104,13 +115,18 @@ class Authenticator:
|
|||||||
return DoorlockResponse.Success
|
return DoorlockResponse.Success
|
||||||
|
|
||||||
def try_auth(self, credentials):
|
def try_auth(self, credentials):
|
||||||
|
user, password = credentials
|
||||||
|
|
||||||
|
if user in self._user_blacklist:
|
||||||
|
return DoorlockResponse.Perm
|
||||||
|
|
||||||
if self._simulate:
|
if self._simulate:
|
||||||
log.info('SIMULATION MODE! ACCEPTING ANYTHING!')
|
log.info('SIMULATION MODE! ACCEPTING ANYTHING!')
|
||||||
return DoorlockResponse.Success
|
return DoorlockResponse.Success
|
||||||
if AuthMethod.LDAP_USER_PW in self._backends:
|
if AuthMethod.LDAP_USER_PW in self._backends:
|
||||||
retval = self._try_auth_ldap(credentials[0], credentials[1])
|
retval = self._try_auth_ldap(user, password)
|
||||||
if retval == DoorlockResponse.Success:
|
if retval == DoorlockResponse.Success:
|
||||||
return retval
|
return retval
|
||||||
if AuthMethod.LOCAL_USER_DB in self._backends:
|
if AuthMethod.LOCAL_USER_DB in self._backends:
|
||||||
return self._try_auth_local(credentials[0], credentials[1])
|
return self._try_auth_local(user, password)
|
||||||
return DoorlockResponse.Perm
|
return DoorlockResponse.Perm
|
||||||
|
Loading…
Reference in New Issue
Block a user