mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2026-02-10 09:06:21 +01:00
update code to reflect the new minimum python version 3.7
- update string format method - remove redundant default arguments from function calls - remove unused imports - remove unicode identifier from strings, it's default in py3 (see: https://stackoverflow.com/a/4182635/12201331)
This commit is contained in:
@@ -31,8 +31,7 @@ class DiscordRoles:
|
||||
return hash(tuple(sorted(self._roles.keys())))
|
||||
|
||||
def __iter__(self):
|
||||
for role in self._roles.values():
|
||||
yield role
|
||||
yield from self._roles.values()
|
||||
|
||||
def __contains__(self, item) -> bool:
|
||||
return int(item) in self._roles
|
||||
|
||||
@@ -1400,7 +1400,7 @@ class TestRedisDecode(TestCase):
|
||||
|
||||
def test_decode_string(self):
|
||||
self.assertEqual(
|
||||
DiscordClient._redis_decode('MyTest123'.encode('utf8')), 'MyTest123'
|
||||
DiscordClient._redis_decode(b'MyTest123'), 'MyTest123'
|
||||
)
|
||||
|
||||
def test_decode_bool(self):
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.2 on 2016-12-12 03:14
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.5 on 2017-02-02 05:59
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
from django.conf import settings
|
||||
@@ -23,12 +22,12 @@ def migrate_service_enabled(apps, schema_editor):
|
||||
|
||||
perm = Permission.objects.get(codename='access_discord')
|
||||
|
||||
member_group_name = getattr(settings, str('DEFAULT_AUTH_GROUP'), 'Member')
|
||||
blue_group_name = getattr(settings, str('DEFAULT_BLUE_GROUP'), 'Blue')
|
||||
member_group_name = getattr(settings, 'DEFAULT_AUTH_GROUP', 'Member')
|
||||
blue_group_name = getattr(settings, 'DEFAULT_BLUE_GROUP', 'Blue')
|
||||
|
||||
# Migrate members
|
||||
if DiscordUser.objects.filter(user__groups__name=member_group_name).exists() or \
|
||||
getattr(settings, str('ENABLE_AUTH_DISCORD'), False):
|
||||
getattr(settings, 'ENABLE_AUTH_DISCORD', False):
|
||||
try:
|
||||
group = Group.objects.get(name=member_group_name)
|
||||
group.permissions.add(perm)
|
||||
@@ -37,7 +36,7 @@ def migrate_service_enabled(apps, schema_editor):
|
||||
|
||||
# Migrate blues
|
||||
if DiscordUser.objects.filter(user__groups__name=blue_group_name).exists() or \
|
||||
getattr(settings, str('ENABLE_BLUE_DISCORD'), False):
|
||||
getattr(settings, 'ENABLE_BLUE_DISCORD', False):
|
||||
try:
|
||||
group = Group.objects.get(name=blue_group_name)
|
||||
group.permissions.add(perm)
|
||||
|
||||
@@ -123,7 +123,7 @@ class DiscordUser(models.Model):
|
||||
)
|
||||
if not guild_roles.has_roles(member_info['roles']):
|
||||
raise RuntimeError(
|
||||
'Member %s has unknown roles: %s' % (
|
||||
'Member {} has unknown roles: {}'.format(
|
||||
self.user,
|
||||
set(member_info['roles']).difference(guild_roles.ids())
|
||||
)
|
||||
|
||||
@@ -395,12 +395,12 @@ class StateTestCase(TestCase):
|
||||
self.assertIsNotNone(self.user.discord)
|
||||
higher_state.member_characters.add(self.test_character)
|
||||
self._refresh_user()
|
||||
self.assertEquals(higher_state, self.user.profile.state)
|
||||
self.assertEqual(higher_state, self.user.profile.state)
|
||||
with self.assertRaises(DiscordUser.DoesNotExist):
|
||||
self.user.discord
|
||||
higher_state.member_characters.clear()
|
||||
self._refresh_user()
|
||||
self.assertEquals(self.member_state, self.user.profile.state)
|
||||
self.assertEqual(self.member_state, self.user.profile.state)
|
||||
with self.assertRaises(DiscordUser.DoesNotExist):
|
||||
self.user.discord
|
||||
|
||||
@@ -419,15 +419,15 @@ class StateTestCase(TestCase):
|
||||
self.assertIsNotNone(self.user.discord)
|
||||
lower_state.member_characters.add(self.test_character)
|
||||
self._refresh_user()
|
||||
self.assertEquals(self.member_state, self.user.profile.state)
|
||||
self.assertEqual(self.member_state, self.user.profile.state)
|
||||
self.member_state.member_characters.clear()
|
||||
self._refresh_user()
|
||||
self.assertEquals(lower_state, self.user.profile.state)
|
||||
self.assertEqual(lower_state, self.user.profile.state)
|
||||
with self.assertRaises(DiscordUser.DoesNotExist):
|
||||
self.user.discord
|
||||
self.member_state.member_characters.add(self.test_character)
|
||||
self._refresh_user()
|
||||
self.assertEquals(self.member_state, self.user.profile.state)
|
||||
self.assertEqual(self.member_state, self.user.profile.state)
|
||||
with self.assertRaises(DiscordUser.DoesNotExist):
|
||||
self.user.discord
|
||||
|
||||
|
||||
@@ -10,11 +10,11 @@ logger = logging.getLogger(__name__)
|
||||
class LoggerAddTag(logging.LoggerAdapter):
|
||||
"""add custom tag to a logger"""
|
||||
def __init__(self, logger, prefix):
|
||||
super(LoggerAddTag, self).__init__(logger, {})
|
||||
super().__init__(logger, {})
|
||||
self.prefix = prefix
|
||||
|
||||
def process(self, msg, kwargs):
|
||||
return '[%s] %s' % (self.prefix, msg), kwargs
|
||||
return f'[{self.prefix}] {msg}', kwargs
|
||||
|
||||
|
||||
def clean_setting(
|
||||
@@ -80,7 +80,7 @@ def set_logger_to_file(logger_name: str, name: str) -> object:
|
||||
'%(asctime)s - %(levelname)s - %(module)s:%(funcName)s - %(message)s'
|
||||
)
|
||||
path = os.path.splitext(name)[0]
|
||||
f_handler = logging.FileHandler('{}.log'.format(path), 'w+')
|
||||
f_handler = logging.FileHandler(f'{path}.log', 'w+')
|
||||
f_handler.setFormatter(f_format)
|
||||
logger = logging.getLogger(logger_name)
|
||||
logger.level = logging.DEBUG
|
||||
|
||||
@@ -21,16 +21,16 @@ class DiscourseService(ServicesHook):
|
||||
self.name_format = '{character_name}'
|
||||
|
||||
def delete_user(self, user, notify_user=False):
|
||||
logger.debug('Deleting user %s %s account' % (user, self.name))
|
||||
logger.debug(f'Deleting user {user} {self.name} account')
|
||||
return DiscourseTasks.delete_user(user, notify_user=notify_user)
|
||||
|
||||
def update_groups(self, user):
|
||||
logger.debug('Processing %s groups for %s' % (self.name, user))
|
||||
logger.debug(f'Processing {self.name} groups for {user}')
|
||||
if DiscourseTasks.has_account(user):
|
||||
DiscourseTasks.update_groups.delay(user.pk)
|
||||
|
||||
def validate_user(self, user):
|
||||
logger.debug('Validating user %s %s account' % (user, self.name))
|
||||
logger.debug(f'Validating user {user} {self.name} account')
|
||||
if DiscourseTasks.has_account(user) and not self.service_active_for_user(user):
|
||||
self.delete_user(user, notify_user=True)
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ class DiscourseError(Exception):
|
||||
self.errors = errors
|
||||
|
||||
def __str__(self):
|
||||
return "API execution failed.\nErrors: %s\nEndpoint: %s" % (self.errors, self.endpoint)
|
||||
return f"API execution failed.\nErrors: {self.errors}\nEndpoint: {self.endpoint}"
|
||||
|
||||
|
||||
class DiscourseManager:
|
||||
@@ -165,7 +165,7 @@ class DiscourseManager:
|
||||
|
||||
@staticmethod
|
||||
def _sanitize_groupname(name):
|
||||
name = re.sub('[^\w]', '', name)
|
||||
name = re.sub(r'[^\w]', '', name)
|
||||
name = DiscourseManager._sanitize_name(name)
|
||||
if len(name) < 3:
|
||||
name = "Group " + name
|
||||
@@ -176,7 +176,7 @@ class DiscourseManager:
|
||||
groups = [DiscourseManager._sanitize_groupname(user.profile.state.name)]
|
||||
for g in user.groups.all():
|
||||
groups.append(DiscourseManager._sanitize_groupname(str(g)))
|
||||
logger.debug("Updating discourse user %s groups to %s" % (user, groups))
|
||||
logger.debug(f"Updating discourse user {user} groups to {groups}")
|
||||
group_dict = DiscourseManager.__generate_group_dict(groups)
|
||||
inv_group_dict = {v: k for k, v in group_dict.items()}
|
||||
discord_user = DiscourseManager.__get_user_by_external(user.pk)
|
||||
@@ -187,12 +187,12 @@ class DiscourseManager:
|
||||
rem_groups = [x for x in user_groups if x not in inv_group_dict]
|
||||
if add_groups:
|
||||
logger.info(
|
||||
"Updating discourse user %s groups: adding %s" % (username, add_groups))
|
||||
f"Updating discourse user {username} groups: adding {add_groups}")
|
||||
for g in add_groups:
|
||||
DiscourseManager.__add_user_to_group(g, username)
|
||||
if rem_groups:
|
||||
logger.info(
|
||||
"Updating discourse user %s groups: removing %s" % (username, rem_groups))
|
||||
f"Updating discourse user {username} groups: removing {rem_groups}")
|
||||
for g in rem_groups:
|
||||
DiscourseManager.__remove_user_from_group(g, uid)
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.2 on 2016-12-12 03:15
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.5 on 2017-02-02 05:59
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
from django.conf import settings
|
||||
@@ -23,12 +22,12 @@ def migrate_service_enabled(apps, schema_editor):
|
||||
|
||||
perm = Permission.objects.get(codename='access_discourse')
|
||||
|
||||
member_group_name = getattr(settings, str('DEFAULT_AUTH_GROUP'), 'Member')
|
||||
blue_group_name = getattr(settings, str('DEFAULT_BLUE_GROUP'), 'Blue')
|
||||
member_group_name = getattr(settings, 'DEFAULT_AUTH_GROUP', 'Member')
|
||||
blue_group_name = getattr(settings, 'DEFAULT_BLUE_GROUP', 'Blue')
|
||||
|
||||
# Migrate members
|
||||
if DiscourseUser.objects.filter(user__groups__name=member_group_name).exists() or \
|
||||
getattr(settings, str('ENABLE_AUTH_DISCOURSE'), False):
|
||||
getattr(settings, 'ENABLE_AUTH_DISCOURSE', False):
|
||||
try:
|
||||
group = Group.objects.get(name=member_group_name)
|
||||
group.permissions.add(perm)
|
||||
@@ -37,7 +36,7 @@ def migrate_service_enabled(apps, schema_editor):
|
||||
|
||||
# Migrate blues
|
||||
if DiscourseUser.objects.filter(user__groups__name=blue_group_name).exists() or \
|
||||
getattr(settings, str('ENABLE_BLUE_DISCOURSE'), False):
|
||||
getattr(settings, 'ENABLE_BLUE_DISCOURSE', False):
|
||||
try:
|
||||
group = Group.objects.get(name=blue_group_name)
|
||||
group.permissions.add(perm)
|
||||
|
||||
@@ -14,5 +14,5 @@ class DiscourseUser(models.Model):
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("access_discourse", u"Can access the Discourse service"),
|
||||
("access_discourse", "Can access the Discourse service"),
|
||||
)
|
||||
|
||||
@@ -93,4 +93,4 @@ def discourse_sso(request):
|
||||
|
||||
# Redirect back to Discourse
|
||||
url = '%s/session/sso_login' % settings.DISCOURSE_URL
|
||||
return redirect('%s?%s' % (url, query_string))
|
||||
return redirect(f'{url}?{query_string}')
|
||||
|
||||
@@ -39,7 +39,7 @@ class Ips4Manager:
|
||||
cursor.execute(Ips4Manager.SQL_GET_ID, [username])
|
||||
row = cursor.fetchone()
|
||||
if row is not None:
|
||||
logger.debug("Got user id %s for username %s" % (row[0], username))
|
||||
logger.debug(f"Got user id {row[0]} for username {username}")
|
||||
return row[0]
|
||||
else:
|
||||
logger.error("username %s not found. Unable to determine id." % username)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.2 on 2016-12-12 03:27
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.5 on 2017-02-02 05:59
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
from django.conf import settings
|
||||
@@ -23,12 +22,12 @@ def migrate_service_enabled(apps, schema_editor):
|
||||
|
||||
perm = Permission.objects.get(codename='access_ips4')
|
||||
|
||||
member_group_name = getattr(settings, str('DEFAULT_AUTH_GROUP'), 'Member')
|
||||
blue_group_name = getattr(settings, str('DEFAULT_BLUE_GROUP'), 'Blue')
|
||||
member_group_name = getattr(settings, 'DEFAULT_AUTH_GROUP', 'Member')
|
||||
blue_group_name = getattr(settings, 'DEFAULT_BLUE_GROUP', 'Blue')
|
||||
|
||||
# Migrate members
|
||||
if Ips4User.objects.filter(user__groups__name=member_group_name).exists() or \
|
||||
getattr(settings, str('ENABLE_AUTH_IPS4'), False):
|
||||
getattr(settings, 'ENABLE_AUTH_IPS4', False):
|
||||
try:
|
||||
group = Group.objects.get(name=member_group_name)
|
||||
group.permissions.add(perm)
|
||||
@@ -37,7 +36,7 @@ def migrate_service_enabled(apps, schema_editor):
|
||||
|
||||
# Migrate blues
|
||||
if Ips4User.objects.filter(user__groups__name=blue_group_name).exists() or \
|
||||
getattr(settings, str('ENABLE_BLUE_IPS4'), False):
|
||||
getattr(settings, 'ENABLE_BLUE_IPS4', False):
|
||||
try:
|
||||
group = Group.objects.get(name=blue_group_name)
|
||||
group.permissions.add(perm)
|
||||
|
||||
@@ -15,5 +15,5 @@ class Ips4User(models.Model):
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("access_ips4", u"Can access the IPS4 service"),
|
||||
("access_ips4", "Can access the IPS4 service"),
|
||||
)
|
||||
|
||||
@@ -143,7 +143,7 @@ class Ips4ManagerTestCase(TestCase):
|
||||
password = self.manager._Ips4Manager__generate_random_pass()
|
||||
|
||||
self.assertEqual(len(password), 16)
|
||||
self.assertIsInstance(password, type(''))
|
||||
self.assertIsInstance(password, str)
|
||||
|
||||
def test_gen_pwhash(self):
|
||||
pwhash = self.manager._gen_pwhash('test')
|
||||
|
||||
@@ -20,7 +20,7 @@ ACCESS_PERM = 'ips4.access_ips4'
|
||||
def activate_ips4(request):
|
||||
logger.debug("activate_ips4 called by user %s" % request.user)
|
||||
character = request.user.profile.main_character
|
||||
logger.debug("Adding IPS4 user for user %s with main character %s" % (request.user, character))
|
||||
logger.debug(f"Adding IPS4 user for user {request.user} with main character {character}")
|
||||
result = Ips4Manager.add_user(Ips4Tasks.get_username(request.user), request.user.email)
|
||||
# if empty we failed
|
||||
if result[0] != "" and not Ips4Tasks.has_account(request.user):
|
||||
|
||||
@@ -25,7 +25,7 @@ class MumbleService(ServicesHook):
|
||||
self.name_format = '[{corp_ticker}]{character_name}'
|
||||
|
||||
def delete_user(self, user, notify_user=False):
|
||||
logging.debug("Deleting user %s %s account" % (user, self.name))
|
||||
logging.debug(f"Deleting user {user} {self.name} account")
|
||||
try:
|
||||
if user.mumble.delete():
|
||||
if notify_user:
|
||||
@@ -36,12 +36,12 @@ class MumbleService(ServicesHook):
|
||||
logging.debug("User does not have a mumble account")
|
||||
|
||||
def update_groups(self, user):
|
||||
logger.debug("Updating %s groups for %s" % (self.name, user))
|
||||
logger.debug(f"Updating {self.name} groups for {user}")
|
||||
if MumbleTasks.has_account(user):
|
||||
MumbleTasks.update_groups.delay(user.pk)
|
||||
|
||||
def sync_nickname(self, user):
|
||||
logger.debug("Updating %s nickname for %s" % (self.name, user))
|
||||
logger.debug(f"Updating {self.name} nickname for {user}")
|
||||
if MumbleTasks.has_account(user):
|
||||
MumbleTasks.update_display_name.apply_async(args=[user.pk], countdown=5) # cooldown on this task to ensure DB clean when syncing
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.2 on 2016-12-12 00:58
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.2 on 2016-12-12 01:00
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.2 on 2016-12-12 03:31
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.4 on 2016-12-14 10:24
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.4 on 2017-01-23 10:28
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.5 on 2017-02-02 05:59
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
from django.conf import settings
|
||||
@@ -23,12 +22,12 @@ def migrate_service_enabled(apps, schema_editor):
|
||||
|
||||
perm = Permission.objects.get(codename='access_mumble')
|
||||
|
||||
member_group_name = getattr(settings, str('DEFAULT_AUTH_GROUP'), 'Member')
|
||||
blue_group_name = getattr(settings, str('DEFAULT_BLUE_GROUP'), 'Blue')
|
||||
member_group_name = getattr(settings, 'DEFAULT_AUTH_GROUP', 'Member')
|
||||
blue_group_name = getattr(settings, 'DEFAULT_BLUE_GROUP', 'Blue')
|
||||
|
||||
# Migrate members
|
||||
if MumbleUser.objects.filter(user__groups__name=member_group_name).exists() or \
|
||||
getattr(settings, str('ENABLE_AUTH_MUMBLE'), False):
|
||||
getattr(settings, 'ENABLE_AUTH_MUMBLE', False):
|
||||
try:
|
||||
group = Group.objects.get(name=member_group_name)
|
||||
group.permissions.add(perm)
|
||||
@@ -37,7 +36,7 @@ def migrate_service_enabled(apps, schema_editor):
|
||||
|
||||
# Migrate blues
|
||||
if MumbleUser.objects.filter(user__groups__name=blue_group_name).exists() or \
|
||||
getattr(settings, str('ENABLE_BLUE_MUMBLE'), False):
|
||||
getattr(settings, 'ENABLE_BLUE_MUMBLE', False):
|
||||
try:
|
||||
group = Group.objects.get(name=blue_group_name)
|
||||
group.permissions.add(perm)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.11.6 on 2017-10-09 09:19
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
@@ -38,16 +38,16 @@ class MumbleManager(models.Manager):
|
||||
def create(self, user):
|
||||
try:
|
||||
username = self.get_username(user)
|
||||
logger.debug("Creating mumble user with username {}".format(username))
|
||||
logger.debug(f"Creating mumble user with username {username}")
|
||||
username_clean = self.sanitise_username(username)
|
||||
display_name = self.get_display_name(user)
|
||||
password = self.generate_random_pass()
|
||||
pwhash = self.gen_pwhash(password)
|
||||
logger.debug("Proceeding with mumble user creation: clean username {}, pwhash starts with {}".format(
|
||||
username_clean, pwhash[0:5]))
|
||||
logger.info("Creating mumble user {}".format(username_clean))
|
||||
logger.info(f"Creating mumble user {username_clean}")
|
||||
|
||||
result = super(MumbleManager, self).create(user=user, username=username_clean,
|
||||
result = super().create(user=user, username=username_clean,
|
||||
pwhash=pwhash, hashfn=self.HASH_FN,
|
||||
display_name=display_name)
|
||||
result.update_groups()
|
||||
@@ -117,7 +117,7 @@ class MumbleUser(AbstractServiceModel):
|
||||
|
||||
def update_password(self, password=None):
|
||||
init_password = password
|
||||
logger.debug("Updating mumble user %s password.".format(self.user))
|
||||
logger.debug(f"Updating mumble user %s password.")
|
||||
if not password:
|
||||
password = MumbleManager.generate_random_pass()
|
||||
pwhash = MumbleManager.gen_pwhash(password)
|
||||
@@ -138,19 +138,19 @@ class MumbleUser(AbstractServiceModel):
|
||||
groups_str = [self.user.profile.state.name]
|
||||
for group in groups:
|
||||
groups_str.append(str(group.name))
|
||||
safe_groups = ','.join(set([g.replace(' ', '-') for g in groups_str]))
|
||||
logger.info("Updating mumble user {} groups to {}".format(self.user, safe_groups))
|
||||
safe_groups = ','.join({g.replace(' ', '-') for g in groups_str})
|
||||
logger.info(f"Updating mumble user {self.user} groups to {safe_groups}")
|
||||
self.groups = safe_groups
|
||||
self.save()
|
||||
return True
|
||||
|
||||
def update_display_name(self):
|
||||
logger.info("Updating mumble user {} display name".format(self.user))
|
||||
logger.info(f"Updating mumble user {self.user} display name")
|
||||
self.display_name = MumbleManager.get_display_name(self.user)
|
||||
self.save()
|
||||
return True
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("access_mumble", u"Can access the Mumble service"),
|
||||
("access_mumble", "Can access the Mumble service"),
|
||||
)
|
||||
|
||||
@@ -37,7 +37,7 @@ class MumbleTasks:
|
||||
logger.debug("Updated user %s mumble groups." % user)
|
||||
return True
|
||||
except MumbleUser.DoesNotExist:
|
||||
logger.info("Mumble group sync failed for {}, user does not have a mumble account".format(user))
|
||||
logger.info(f"Mumble group sync failed for {user}, user does not have a mumble account")
|
||||
except:
|
||||
logger.exception("Mumble group sync failed for %s, retrying in 10 mins" % user)
|
||||
raise self.retry(countdown=60 * 10)
|
||||
@@ -57,7 +57,7 @@ class MumbleTasks:
|
||||
logger.debug("Updated user %s mumble display name." % user)
|
||||
return True
|
||||
except MumbleUser.DoesNotExist:
|
||||
logger.info("Mumble display name sync failed for {}, user does not have a mumble account".format(user))
|
||||
logger.info(f"Mumble display name sync failed for {user}, user does not have a mumble account")
|
||||
except:
|
||||
logger.exception("Mumble display name sync failed for %s, retrying in 10 mins" % user)
|
||||
raise self.retry(countdown=60 * 10)
|
||||
|
||||
@@ -203,7 +203,7 @@ class MumbleManagerTestCase(TestCase):
|
||||
password = self.manager.generate_random_pass()
|
||||
|
||||
self.assertEqual(len(password), 16)
|
||||
self.assertIsInstance(password, type(''))
|
||||
self.assertIsInstance(password, str)
|
||||
|
||||
def test_gen_pwhash(self):
|
||||
pwhash = self.manager.gen_pwhash('test')
|
||||
|
||||
@@ -26,16 +26,16 @@ class OpenfireService(ServicesHook):
|
||||
return _("Jabber")
|
||||
|
||||
def delete_user(self, user, notify_user=False):
|
||||
logger.debug('Deleting user %s %s account' % (user, self.name))
|
||||
logger.debug(f'Deleting user {user} {self.name} account')
|
||||
return OpenfireTasks.delete_user(user, notify_user=notify_user)
|
||||
|
||||
def validate_user(self, user):
|
||||
logger.debug('Validating user %s %s account' % (user, self.name))
|
||||
logger.debug(f'Validating user {user} {self.name} account')
|
||||
if OpenfireTasks.has_account(user) and not self.service_active_for_user(user):
|
||||
self.delete_user(user, notify_user=True)
|
||||
|
||||
def update_groups(self, user):
|
||||
logger.debug('Updating %s groups for %s' % (self.name, user))
|
||||
logger.debug(f'Updating {self.name} groups for {user}')
|
||||
if OpenfireTasks.has_account(user):
|
||||
OpenfireTasks.update_groups.delay(user.pk)
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ class OpenfireManager:
|
||||
@staticmethod
|
||||
def _sanitize_groupname(name):
|
||||
name = name.strip(' _').lower()
|
||||
return re.sub('[^\w.-]', '', name)
|
||||
return re.sub(r'[^\w.-]', '', name)
|
||||
|
||||
@staticmethod
|
||||
def add_user(username):
|
||||
@@ -116,7 +116,7 @@ class OpenfireManager:
|
||||
|
||||
@classmethod
|
||||
def update_user_groups(cls, username, groups):
|
||||
logger.debug("Updating openfire user %s groups %s" % (username, groups))
|
||||
logger.debug(f"Updating openfire user {username} groups {groups}")
|
||||
s_groups = list(map(cls._sanitize_groupname, groups)) # Sanitized group names
|
||||
api = ofUsers(settings.OPENFIRE_ADDRESS, settings.OPENFIRE_SECRET_KEY)
|
||||
response = api.get_user_groups(username)
|
||||
@@ -126,7 +126,7 @@ class OpenfireManager:
|
||||
if isinstance(remote_groups, str):
|
||||
remote_groups = [remote_groups]
|
||||
remote_groups = list(map(cls._sanitize_groupname, remote_groups))
|
||||
logger.debug("Openfire user %s has groups %s" % (username, remote_groups))
|
||||
logger.debug(f"Openfire user {username} has groups {remote_groups}")
|
||||
add_groups = []
|
||||
del_groups = []
|
||||
for g in s_groups:
|
||||
@@ -136,7 +136,7 @@ class OpenfireManager:
|
||||
if g not in s_groups:
|
||||
del_groups.append(g)
|
||||
logger.info(
|
||||
"Updating openfire groups for user %s - adding %s, removing %s" % (username, add_groups, del_groups))
|
||||
f"Updating openfire groups for user {username} - adding {add_groups}, removing {del_groups}")
|
||||
if add_groups:
|
||||
api.add_user_groups(username, add_groups)
|
||||
if del_groups:
|
||||
@@ -144,15 +144,15 @@ class OpenfireManager:
|
||||
|
||||
@staticmethod
|
||||
def delete_user_groups(username, groups):
|
||||
logger.debug("Deleting openfire groups %s from user %s" % (groups, username))
|
||||
logger.debug(f"Deleting openfire groups {groups} from user {username}")
|
||||
api = ofUsers(settings.OPENFIRE_ADDRESS, settings.OPENFIRE_SECRET_KEY)
|
||||
api.delete_user_groups(username, groups)
|
||||
logger.info("Deleted groups %s from openfire user %s" % (groups, username))
|
||||
logger.info(f"Deleted groups {groups} from openfire user {username}")
|
||||
|
||||
@classmethod
|
||||
def send_broadcast_message(cls, group_name, broadcast_message):
|
||||
s_group_name = cls._sanitize_groupname(group_name)
|
||||
logger.debug("Sending jabber ping to group %s with message %s" % (s_group_name, broadcast_message))
|
||||
logger.debug(f"Sending jabber ping to group {s_group_name} with message {broadcast_message}")
|
||||
to_address = s_group_name + '@' + settings.BROADCAST_SERVICE_NAME + '.' + settings.JABBER_URL
|
||||
xmpp = PingBot(settings.BROADCAST_USER, settings.BROADCAST_USER_PASSWORD, to_address, broadcast_message)
|
||||
xmpp.register_plugin('xep_0030') # Service Discovery
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.2 on 2016-12-12 03:27
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.5 on 2017-02-02 05:59
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
from django.conf import settings
|
||||
@@ -23,12 +22,12 @@ def migrate_service_enabled(apps, schema_editor):
|
||||
|
||||
perm = Permission.objects.get(codename='access_openfire')
|
||||
|
||||
member_group_name = getattr(settings, str('DEFAULT_AUTH_GROUP'), 'Member')
|
||||
blue_group_name = getattr(settings, str('DEFAULT_BLUE_GROUP'), 'Blue')
|
||||
member_group_name = getattr(settings, 'DEFAULT_AUTH_GROUP', 'Member')
|
||||
blue_group_name = getattr(settings, 'DEFAULT_BLUE_GROUP', 'Blue')
|
||||
|
||||
# Migrate members
|
||||
if OpenfireUser.objects.filter(user__groups__name=member_group_name).exists() or \
|
||||
getattr(settings, str('ENABLE_AUTH_JABBER'), False):
|
||||
getattr(settings, 'ENABLE_AUTH_JABBER', False):
|
||||
try:
|
||||
group = Group.objects.get(name=member_group_name)
|
||||
group.permissions.add(perm)
|
||||
@@ -37,7 +36,7 @@ def migrate_service_enabled(apps, schema_editor):
|
||||
|
||||
# Migrate blues
|
||||
if OpenfireUser.objects.filter(user__groups__name=blue_group_name).exists() or \
|
||||
getattr(settings, str('ENABLE_BLUE_JABBER'), False):
|
||||
getattr(settings, 'ENABLE_BLUE_JABBER', False):
|
||||
try:
|
||||
group = Group.objects.get(name=blue_group_name)
|
||||
group.permissions.add(perm)
|
||||
|
||||
@@ -13,5 +13,5 @@ class OpenfireUser(models.Model):
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("access_openfire", u"Can access the Openfire service"),
|
||||
("access_openfire", "Can access the Openfire service"),
|
||||
)
|
||||
|
||||
@@ -19,7 +19,7 @@ class OpenfireTasks:
|
||||
@classmethod
|
||||
def delete_user(cls, user, notify_user=False):
|
||||
if cls.has_account(user):
|
||||
logger.debug("User %s has jabber account %s. Deleting." % (user, user.openfire.username))
|
||||
logger.debug(f"User {user} has jabber account {user.openfire.username}. Deleting.")
|
||||
OpenfireManager.delete_user(user.openfire.username)
|
||||
user.openfire.delete()
|
||||
if notify_user:
|
||||
@@ -48,7 +48,7 @@ class OpenfireTasks:
|
||||
groups = [user.profile.state.name]
|
||||
for group in user.groups.all():
|
||||
groups.append(str(group.name))
|
||||
logger.debug("Updating user %s jabber groups to %s" % (user, groups))
|
||||
logger.debug(f"Updating user {user} jabber groups to {groups}")
|
||||
try:
|
||||
OpenfireManager.update_user_groups(user.openfire.username, groups)
|
||||
except:
|
||||
|
||||
@@ -195,7 +195,7 @@ class OpenfireManagerTestCase(TestCase):
|
||||
password = self.manager._OpenfireManager__generate_random_pass()
|
||||
|
||||
self.assertEqual(len(password), 16)
|
||||
self.assertIsInstance(password, type(''))
|
||||
self.assertIsInstance(password, str)
|
||||
|
||||
def test__sanitize_username(self):
|
||||
test_username = " My_Test User\"'&/:<>@name\\20name"
|
||||
|
||||
@@ -24,7 +24,7 @@ ACCESS_PERM = 'openfire.access_openfire'
|
||||
def activate_jabber(request):
|
||||
logger.debug("activate_jabber called by user %s" % request.user)
|
||||
character = request.user.profile.main_character
|
||||
logger.debug("Adding jabber user for user %s with main character %s" % (request.user, character))
|
||||
logger.debug(f"Adding jabber user for user {request.user} with main character {character}")
|
||||
info = OpenfireManager.add_user(OpenfireTasks.get_username(request.user))
|
||||
# If our username is blank means we already had a user
|
||||
if info[0] != "":
|
||||
@@ -95,7 +95,7 @@ def jabber_broadcast_view(request):
|
||||
logger.debug("Received POST request containing form, valid: %s" % form.is_valid())
|
||||
if form.is_valid():
|
||||
main_char = request.user.profile.main_character
|
||||
logger.debug("Processing jabber broadcast for user %s with main character %s" % (request.user, main_char))
|
||||
logger.debug(f"Processing jabber broadcast for user {request.user} with main character {main_char}")
|
||||
try:
|
||||
if main_char is not None:
|
||||
message_to_send = form.cleaned_data['message'] + "\n##### SENT BY: " + "[" + main_char.corporation_ticker + "]" + \
|
||||
@@ -120,7 +120,7 @@ def jabber_broadcast_view(request):
|
||||
else:
|
||||
form = JabberBroadcastForm()
|
||||
form.fields['group'].choices = allchoices
|
||||
logger.debug("Generated broadcast form for user %s containing %s groups" % (
|
||||
logger.debug("Generated broadcast form for user {} containing {} groups".format(
|
||||
request.user, len(form.fields['group'].choices)))
|
||||
|
||||
context = {'form': form}
|
||||
|
||||
@@ -25,16 +25,16 @@ class Phpbb3Service(ServicesHook):
|
||||
return 'phpBB3 Forum'
|
||||
|
||||
def delete_user(self, user, notify_user=False):
|
||||
logger.debug('Deleting user %s %s account' % (user, self.name))
|
||||
logger.debug(f'Deleting user {user} {self.name} account')
|
||||
return Phpbb3Tasks.delete_user(user, notify_user=notify_user)
|
||||
|
||||
def validate_user(self, user):
|
||||
logger.debug('Validating user %s %s account' % (user, self.name))
|
||||
logger.debug(f'Validating user {user} {self.name} account')
|
||||
if Phpbb3Tasks.has_account(user) and not self.service_active_for_user(user):
|
||||
self.delete_user(user, notify_user=True)
|
||||
|
||||
def update_groups(self, user):
|
||||
logger.debug('Updating %s groups for %s' % (self.name, user))
|
||||
logger.debug(f'Updating {self.name} groups for {user}')
|
||||
if Phpbb3Tasks.has_account(user):
|
||||
Phpbb3Tasks.update_groups.delay(user.pk)
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ class Phpbb3Manager:
|
||||
|
||||
@staticmethod
|
||||
def __add_avatar(username, characterid):
|
||||
logger.debug("Adding EVE character id %s portrait as phpbb avater for user %s" % (characterid, username))
|
||||
logger.debug(f"Adding EVE character id {characterid} portrait as phpbb avater for user {username}")
|
||||
avatar_url = EveCharacter.generic_portrait_url(characterid, 64)
|
||||
cursor = connections['phpbb3'].cursor()
|
||||
userid = Phpbb3Manager.__get_user_id(username)
|
||||
@@ -81,7 +81,7 @@ class Phpbb3Manager:
|
||||
@staticmethod
|
||||
def _sanitize_groupname(name):
|
||||
name = name.strip(' _')
|
||||
return re.sub('[^\w.-]', '', name)
|
||||
return re.sub(r'[^\w.-]', '', name)
|
||||
|
||||
@staticmethod
|
||||
def __get_group_id(groupname):
|
||||
@@ -89,7 +89,7 @@ class Phpbb3Manager:
|
||||
cursor = connections['phpbb3'].cursor()
|
||||
cursor.execute(Phpbb3Manager.SQL_GET_GROUP_ID, [groupname])
|
||||
row = cursor.fetchone()
|
||||
logger.debug("Got phpbb group id %s for groupname %s" % (row[0], groupname))
|
||||
logger.debug(f"Got phpbb group id {row[0]} for groupname {groupname}")
|
||||
return row[0]
|
||||
|
||||
@staticmethod
|
||||
@@ -99,7 +99,7 @@ class Phpbb3Manager:
|
||||
cursor.execute(Phpbb3Manager.SQL_USER_ID_FROM_USERNAME, [username])
|
||||
row = cursor.fetchone()
|
||||
if row is not None:
|
||||
logger.debug("Got phpbb user id %s for username %s" % (row[0], username))
|
||||
logger.debug(f"Got phpbb user id {row[0]} for username {username}")
|
||||
return row[0]
|
||||
else:
|
||||
logger.error("Username %s not found on phpbb. Unable to determine user id." % username)
|
||||
@@ -123,7 +123,7 @@ class Phpbb3Manager:
|
||||
cursor = connections['phpbb3'].cursor()
|
||||
cursor.execute(Phpbb3Manager.SQL_GET_USER_GROUPS, [userid])
|
||||
out = [row[0] for row in cursor.fetchall()]
|
||||
logger.debug("Got user %s phpbb groups %s" % (userid, out))
|
||||
logger.debug(f"Got user {userid} phpbb groups {out}")
|
||||
return out
|
||||
|
||||
@staticmethod
|
||||
@@ -142,38 +142,38 @@ class Phpbb3Manager:
|
||||
|
||||
@staticmethod
|
||||
def __add_user_to_group(userid, groupid):
|
||||
logger.debug("Adding phpbb3 user id %s to group id %s" % (userid, groupid))
|
||||
logger.debug(f"Adding phpbb3 user id {userid} to group id {groupid}")
|
||||
try:
|
||||
cursor = connections['phpbb3'].cursor()
|
||||
cursor.execute(Phpbb3Manager.SQL_ADD_USER_GROUP, [groupid, userid, 0])
|
||||
cursor.execute(Phpbb3Manager.SQL_CLEAR_USER_PERMISSIONS, [userid])
|
||||
logger.info("Added phpbb user id %s to group id %s" % (userid, groupid))
|
||||
logger.info(f"Added phpbb user id {userid} to group id {groupid}")
|
||||
except:
|
||||
logger.exception("Unable to add phpbb user id %s to group id %s" % (userid, groupid))
|
||||
logger.exception(f"Unable to add phpbb user id {userid} to group id {groupid}")
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
def __remove_user_from_group(userid, groupid):
|
||||
logger.debug("Removing phpbb3 user id %s from group id %s" % (userid, groupid))
|
||||
logger.debug(f"Removing phpbb3 user id {userid} from group id {groupid}")
|
||||
try:
|
||||
cursor = connections['phpbb3'].cursor()
|
||||
cursor.execute(Phpbb3Manager.SQL_REMOVE_USER_GROUP, [userid, groupid])
|
||||
cursor.execute(Phpbb3Manager.SQL_CLEAR_USER_PERMISSIONS, [userid])
|
||||
logger.info("Removed phpbb user id %s from group id %s" % (userid, groupid))
|
||||
logger.info(f"Removed phpbb user id {userid} from group id {groupid}")
|
||||
except:
|
||||
logger.exception("Unable to remove phpbb user id %s from group id %s" % (userid, groupid))
|
||||
logger.exception(f"Unable to remove phpbb user id {userid} from group id {groupid}")
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
def add_user(username, email, groups, characterid):
|
||||
logger.debug("Adding phpbb user with username %s, email %s, groups %s, characterid %s" % (
|
||||
logger.debug("Adding phpbb user with username {}, email {}, groups {}, characterid {}".format(
|
||||
username, email, groups, characterid))
|
||||
cursor = connections['phpbb3'].cursor()
|
||||
|
||||
username_clean = Phpbb3Manager.__santatize_username(username)
|
||||
password = Phpbb3Manager.__generate_random_pass()
|
||||
pwhash = Phpbb3Manager.__gen_hash(password)
|
||||
logger.debug("Proceeding to add phpbb user %s and pwhash starting with %s" % (username_clean, pwhash[0:5]))
|
||||
logger.debug(f"Proceeding to add phpbb user {username_clean} and pwhash starting with {pwhash[0:5]}")
|
||||
# check if the username was simply revoked
|
||||
if Phpbb3Manager.check_user(username_clean):
|
||||
logger.warn("Unable to add phpbb user with username %s - already exists. Updating user instead." % username)
|
||||
@@ -228,14 +228,14 @@ class Phpbb3Manager:
|
||||
@staticmethod
|
||||
def update_groups(username, groups):
|
||||
userid = Phpbb3Manager.__get_user_id(username)
|
||||
logger.debug("Updating phpbb user %s with id %s groups %s" % (username, userid, groups))
|
||||
logger.debug(f"Updating phpbb user {username} with id {userid} groups {groups}")
|
||||
if userid is not None:
|
||||
forum_groups = Phpbb3Manager.__get_all_groups()
|
||||
user_groups = set(Phpbb3Manager.__get_user_groups(userid))
|
||||
act_groups = set([Phpbb3Manager._sanitize_groupname(g) for g in groups])
|
||||
act_groups = {Phpbb3Manager._sanitize_groupname(g) for g in groups}
|
||||
addgroups = act_groups - user_groups
|
||||
remgroups = user_groups - act_groups
|
||||
logger.info("Updating phpbb user %s groups - adding %s, removing %s" % (username, addgroups, remgroups))
|
||||
logger.info(f"Updating phpbb user {username} groups - adding {addgroups}, removing {remgroups}")
|
||||
for g in addgroups:
|
||||
if not g in forum_groups:
|
||||
forum_groups[g] = Phpbb3Manager.__create_group(g)
|
||||
@@ -246,7 +246,7 @@ class Phpbb3Manager:
|
||||
|
||||
@staticmethod
|
||||
def remove_group(username, group):
|
||||
logger.debug("Removing phpbb user %s from group %s" % (username, group))
|
||||
logger.debug(f"Removing phpbb user {username} from group {group}")
|
||||
cursor = connections['phpbb3'].cursor()
|
||||
userid = Phpbb3Manager.__get_user_id(username)
|
||||
if userid is not None:
|
||||
@@ -256,10 +256,10 @@ class Phpbb3Manager:
|
||||
if groupid:
|
||||
try:
|
||||
cursor.execute(Phpbb3Manager.SQL_REMOVE_USER_GROUP, [userid, groupid])
|
||||
logger.info("Removed phpbb user %s from group %s" % (username, group))
|
||||
logger.info(f"Removed phpbb user {username} from group {group}")
|
||||
except:
|
||||
logger.exception(
|
||||
"Exception prevented removal of phpbb user %s with id %s from group %s with id %s" % (
|
||||
"Exception prevented removal of phpbb user {} with id {} from group {} with id {}".format(
|
||||
username, userid, group, groupid))
|
||||
pass
|
||||
|
||||
@@ -284,7 +284,7 @@ class Phpbb3Manager:
|
||||
if Phpbb3Manager.check_user(username):
|
||||
pwhash = Phpbb3Manager.__gen_hash(password)
|
||||
logger.debug(
|
||||
"Proceeding to update phpbb user %s password with pwhash starting with %s" % (username, pwhash[0:5]))
|
||||
f"Proceeding to update phpbb user {username} password with pwhash starting with {pwhash[0:5]}")
|
||||
cursor.execute(Phpbb3Manager.SQL_UPDATE_USER_PASSWORD, [pwhash, username])
|
||||
Phpbb3Manager.__add_avatar(username, characterid)
|
||||
logger.info("Updated phpbb user %s password." % username)
|
||||
@@ -295,7 +295,7 @@ class Phpbb3Manager:
|
||||
@staticmethod
|
||||
def __update_user_info(username, email, password):
|
||||
logger.debug(
|
||||
"Updating phpbb user %s info: username %s password of length %s" % (username, email, len(password)))
|
||||
f"Updating phpbb user {username} info: username {email} password of length {len(password)}")
|
||||
cursor = connections['phpbb3'].cursor()
|
||||
try:
|
||||
cursor.execute(Phpbb3Manager.SQL_DIS_USER, [email, password, username])
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.2 on 2016-12-12 03:28
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.5 on 2017-02-02 05:59
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
from django.conf import settings
|
||||
@@ -23,12 +22,12 @@ def migrate_service_enabled(apps, schema_editor):
|
||||
|
||||
perm = Permission.objects.get(codename='access_phpbb3')
|
||||
|
||||
member_group_name = getattr(settings, str('DEFAULT_AUTH_GROUP'), 'Member')
|
||||
blue_group_name = getattr(settings, str('DEFAULT_BLUE_GROUP'), 'Blue')
|
||||
member_group_name = getattr(settings, 'DEFAULT_AUTH_GROUP', 'Member')
|
||||
blue_group_name = getattr(settings, 'DEFAULT_BLUE_GROUP', 'Blue')
|
||||
|
||||
# Migrate members
|
||||
if Phpbb3User.objects.filter(user__groups__name=member_group_name).exists() or \
|
||||
getattr(settings, str('ENABLE_AUTH_FORUM'), False):
|
||||
getattr(settings, 'ENABLE_AUTH_FORUM', False):
|
||||
try:
|
||||
group = Group.objects.get(name=member_group_name)
|
||||
group.permissions.add(perm)
|
||||
@@ -37,7 +36,7 @@ def migrate_service_enabled(apps, schema_editor):
|
||||
|
||||
# Migrate blues
|
||||
if Phpbb3User.objects.filter(user__groups__name=blue_group_name).exists() or \
|
||||
getattr(settings, str('ENABLE_BLUE_FORUM'), False):
|
||||
getattr(settings, 'ENABLE_BLUE_FORUM', False):
|
||||
try:
|
||||
group = Group.objects.get(name=blue_group_name)
|
||||
group.permissions.add(perm)
|
||||
|
||||
@@ -13,5 +13,5 @@ class Phpbb3User(models.Model):
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("access_phpbb3", u"Can access the phpBB3 service"),
|
||||
("access_phpbb3", "Can access the phpBB3 service"),
|
||||
)
|
||||
|
||||
@@ -19,7 +19,7 @@ class Phpbb3Tasks:
|
||||
@classmethod
|
||||
def delete_user(cls, user, notify_user=False):
|
||||
if cls.has_account(user):
|
||||
logger.debug("User %s has forum account %s. Deleting." % (user, user.phpbb3.username))
|
||||
logger.debug(f"User {user} has forum account {user.phpbb3.username}. Deleting.")
|
||||
if Phpbb3Manager.disable_user(user.phpbb3.username):
|
||||
user.phpbb3.delete()
|
||||
if notify_user:
|
||||
@@ -43,7 +43,7 @@ class Phpbb3Tasks:
|
||||
groups = [user.profile.state.name]
|
||||
for group in user.groups.all():
|
||||
groups.append(str(group.name))
|
||||
logger.debug("Updating user %s phpbb3 groups to %s" % (user, groups))
|
||||
logger.debug(f"Updating user {user} phpbb3 groups to {groups}")
|
||||
try:
|
||||
Phpbb3Manager.update_groups(user.phpbb3.username, groups)
|
||||
except:
|
||||
|
||||
@@ -195,7 +195,7 @@ class Phpbb3ManagerTestCase(TestCase):
|
||||
password = self.manager._Phpbb3Manager__generate_random_pass()
|
||||
|
||||
self.assertEqual(len(password), 16)
|
||||
self.assertIsInstance(password, type(''))
|
||||
self.assertIsInstance(password, str)
|
||||
|
||||
def test_gen_pwhash(self):
|
||||
pwhash = self.manager._Phpbb3Manager__gen_hash('test')
|
||||
|
||||
@@ -22,7 +22,7 @@ def activate_forum(request):
|
||||
logger.debug("activate_forum called by user %s" % request.user)
|
||||
# Valid now we get the main characters
|
||||
character = request.user.profile.main_character
|
||||
logger.debug("Adding phpbb user for user %s with main character %s" % (request.user, character))
|
||||
logger.debug(f"Adding phpbb user for user {request.user} with main character {character}")
|
||||
result = Phpbb3Manager.add_user(Phpbb3Tasks.get_username(request.user), request.user.email, ['REGISTERED'],
|
||||
character.character_id)
|
||||
# if empty we failed
|
||||
|
||||
@@ -25,16 +25,16 @@ class SmfService(ServicesHook):
|
||||
return 'SMF Forums'
|
||||
|
||||
def delete_user(self, user, notify_user=False):
|
||||
logger.debug('Deleting user %s %s account' % (user, self.name))
|
||||
logger.debug(f'Deleting user {user} {self.name} account')
|
||||
return SmfTasks.delete_user(user, notify_user=notify_user)
|
||||
|
||||
def validate_user(self, user):
|
||||
logger.debug('Validating user %s %s account' % (user, self.name))
|
||||
logger.debug(f'Validating user {user} {self.name} account')
|
||||
if SmfTasks.has_account(user) and not self.service_active_for_user(user):
|
||||
self.delete_user(user)
|
||||
|
||||
def update_groups(self, user):
|
||||
logger.debug('Updating %s groups for %s' % (self.name, user))
|
||||
logger.debug(f'Updating {self.name} groups for {user}')
|
||||
if SmfTasks.has_account(user):
|
||||
SmfTasks.update_groups.delay(user.pk)
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ class SmfManager:
|
||||
@staticmethod
|
||||
def _sanitize_groupname(name):
|
||||
name = name.strip(' _')
|
||||
return re.sub('[^\w.-]', '', name)
|
||||
return re.sub(r'[^\w.-]', '', name)
|
||||
|
||||
@staticmethod
|
||||
def generate_random_pass():
|
||||
@@ -85,7 +85,7 @@ class SmfManager:
|
||||
cursor = connections['smf'].cursor()
|
||||
cursor.execute(cls.SQL_GET_GROUP_ID, [groupname])
|
||||
row = cursor.fetchone()
|
||||
logger.debug("Got smf group id %s for groupname %s" % (row[0], groupname))
|
||||
logger.debug(f"Got smf group id {row[0]} for groupname {groupname}")
|
||||
return row[0]
|
||||
|
||||
@classmethod
|
||||
@@ -102,7 +102,7 @@ class SmfManager:
|
||||
|
||||
@classmethod
|
||||
def add_avatar(cls, member_name, characterid):
|
||||
logger.debug("Adding EVE character id %s portrait as smf avatar for user %s" % (characterid, member_name))
|
||||
logger.debug(f"Adding EVE character id {characterid} portrait as smf avatar for user {member_name}")
|
||||
avatar_url = EveCharacter.generic_portrait_url(characterid, 64)
|
||||
cursor = connections['smf'].cursor()
|
||||
id_member = cls.get_user_id(member_name)
|
||||
@@ -115,7 +115,7 @@ class SmfManager:
|
||||
cursor.execute(cls.SQL_USER_ID_FROM_USERNAME, [username])
|
||||
row = cursor.fetchone()
|
||||
if row is not None:
|
||||
logger.debug("Got smf user id %s for username %s" % (row[0], username))
|
||||
logger.debug(f"Got smf user id {row[0]} for username {username}")
|
||||
return row[0]
|
||||
else:
|
||||
logger.error("username %s not found on smf. Unable to determine user id ." % username)
|
||||
@@ -139,18 +139,18 @@ class SmfManager:
|
||||
cursor = connections['smf'].cursor()
|
||||
cursor.execute(cls.SQL_GET_USER_GROUPS, [userid])
|
||||
out = [row[0] for row in cursor.fetchall()]
|
||||
logger.debug("Got user %s smf groups %s" % (userid, out))
|
||||
logger.debug(f"Got user {userid} smf groups {out}")
|
||||
return out
|
||||
|
||||
@classmethod
|
||||
def add_user(cls, username, email_address, groups, characterid):
|
||||
logger.debug("Adding smf user with member_name %s, email_address %s, characterid %s" % (
|
||||
logger.debug("Adding smf user with member_name {}, email_address {}, characterid {}".format(
|
||||
username, email_address, characterid))
|
||||
cursor = connections['smf'].cursor()
|
||||
username_clean = cls.santatize_username(username)
|
||||
passwd = cls.generate_random_pass()
|
||||
pwhash = cls.gen_hash(username_clean, passwd)
|
||||
logger.debug("Proceeding to add smf user %s and pwhash starting with %s" % (username, pwhash[0:5]))
|
||||
logger.debug(f"Proceeding to add smf user {username} and pwhash starting with {pwhash[0:5]}")
|
||||
register_date = cls.get_current_utc_date()
|
||||
# check if the username was simply revoked
|
||||
if cls.check_user(username) is True:
|
||||
@@ -171,7 +171,7 @@ class SmfManager:
|
||||
@classmethod
|
||||
def __update_user_info(cls, username, email_address, passwd):
|
||||
logger.debug(
|
||||
"Updating smf user %s info: username %s password of length %s" % (username, email_address, len(passwd)))
|
||||
f"Updating smf user {username} info: username {email_address} password of length {len(passwd)}")
|
||||
cursor = connections['smf'].cursor()
|
||||
try:
|
||||
cursor.execute(cls.SQL_DIS_USER, [email_address, passwd, username])
|
||||
@@ -195,14 +195,14 @@ class SmfManager:
|
||||
@classmethod
|
||||
def update_groups(cls, username, groups):
|
||||
userid = cls.get_user_id(username)
|
||||
logger.debug("Updating smf user %s with id %s groups %s" % (username, userid, groups))
|
||||
logger.debug(f"Updating smf user {username} with id {userid} groups {groups}")
|
||||
if userid is not None:
|
||||
forum_groups = cls.get_all_groups()
|
||||
user_groups = set(cls.get_user_groups(userid))
|
||||
act_groups = set([cls._sanitize_groupname(g) for g in groups])
|
||||
act_groups = {cls._sanitize_groupname(g) for g in groups}
|
||||
addgroups = act_groups - user_groups
|
||||
remgroups = user_groups - act_groups
|
||||
logger.info("Updating smf user %s groups - adding %s, removing %s" % (username, addgroups, remgroups))
|
||||
logger.info(f"Updating smf user {username} groups - adding {addgroups}, removing {remgroups}")
|
||||
act_group_id = set()
|
||||
for g in addgroups:
|
||||
if g not in forum_groups:
|
||||
@@ -213,24 +213,24 @@ class SmfManager:
|
||||
|
||||
@classmethod
|
||||
def add_user_to_group(cls, userid, groupid):
|
||||
logger.debug("Adding smf user id %s to group id %s" % (userid, groupid))
|
||||
logger.debug(f"Adding smf user id {userid} to group id {groupid}")
|
||||
try:
|
||||
cursor = connections['smf'].cursor()
|
||||
cursor.execute(cls.SQL_ADD_USER_GROUP, [groupid, userid])
|
||||
logger.info("Added smf user id %s to group id %s" % (userid, groupid))
|
||||
logger.info(f"Added smf user id {userid} to group id {groupid}")
|
||||
except:
|
||||
logger.exception("Unable to add smf user id %s to group id %s" % (userid, groupid))
|
||||
logger.exception(f"Unable to add smf user id {userid} to group id {groupid}")
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def remove_user_from_group(cls, userid, groupid):
|
||||
logger.debug("Removing smf user id %s from group id %s" % (userid, groupid))
|
||||
logger.debug(f"Removing smf user id {userid} from group id {groupid}")
|
||||
try:
|
||||
cursor = connections['smf'].cursor()
|
||||
cursor.execute(cls.SQL_REMOVE_USER_GROUP, [groupid, userid])
|
||||
logger.info("Removed smf user id %s from group id %s" % (userid, groupid))
|
||||
logger.info(f"Removed smf user id {userid} from group id {groupid}")
|
||||
except:
|
||||
logger.exception("Unable to remove smf user id %s from group id %s" % (userid, groupid))
|
||||
logger.exception(f"Unable to remove smf user id {userid} from group id {groupid}")
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
@@ -261,7 +261,7 @@ class SmfManager:
|
||||
username_clean = cls.santatize_username(username)
|
||||
pwhash = cls.gen_hash(username_clean, password)
|
||||
logger.debug(
|
||||
"Proceeding to update smf user %s password with pwhash starting with %s" % (username, pwhash[0:5]))
|
||||
f"Proceeding to update smf user {username} password with pwhash starting with {pwhash[0:5]}")
|
||||
cursor.execute(cls.SQL_UPDATE_USER_PASSWORD, [pwhash, username])
|
||||
cls.add_avatar(username, characterid)
|
||||
logger.info("Updated smf user %s password." % username)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.2 on 2016-12-12 03:28
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.5 on 2017-02-02 05:59
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
from django.conf import settings
|
||||
@@ -23,12 +22,12 @@ def migrate_service_enabled(apps, schema_editor):
|
||||
|
||||
perm = Permission.objects.get(codename='access_smf')
|
||||
|
||||
member_group_name = getattr(settings, str('DEFAULT_AUTH_GROUP'), 'Member')
|
||||
blue_group_name = getattr(settings, str('DEFAULT_BLUE_GROUP'), 'Blue')
|
||||
member_group_name = getattr(settings, 'DEFAULT_AUTH_GROUP', 'Member')
|
||||
blue_group_name = getattr(settings, 'DEFAULT_BLUE_GROUP', 'Blue')
|
||||
|
||||
# Migrate members
|
||||
if SmfUser.objects.filter(user__groups__name=member_group_name).exists() or \
|
||||
getattr(settings, str('ENABLE_AUTH_SMF'), False):
|
||||
getattr(settings, 'ENABLE_AUTH_SMF', False):
|
||||
try:
|
||||
group = Group.objects.get(name=member_group_name)
|
||||
group.permissions.add(perm)
|
||||
@@ -37,7 +36,7 @@ def migrate_service_enabled(apps, schema_editor):
|
||||
|
||||
# Migrate blues
|
||||
if SmfUser.objects.filter(user__groups__name=blue_group_name).exists() or \
|
||||
getattr(settings, str('ENABLE_BLUE_SMF'), False):
|
||||
getattr(settings, 'ENABLE_BLUE_SMF', False):
|
||||
try:
|
||||
group = Group.objects.get(name=blue_group_name)
|
||||
group.permissions.add(perm)
|
||||
|
||||
@@ -13,5 +13,5 @@ class SmfUser(models.Model):
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("access_smf", u"Can access the SMF service"),
|
||||
("access_smf", "Can access the SMF service"),
|
||||
)
|
||||
|
||||
@@ -19,7 +19,7 @@ class SmfTasks:
|
||||
@classmethod
|
||||
def delete_user(cls, user, notify_user=False):
|
||||
if cls.has_account(user):
|
||||
logger.debug("User %s has a SMF account %s. Deleting." % (user, user.smf.username))
|
||||
logger.debug(f"User {user} has a SMF account {user.smf.username}. Deleting.")
|
||||
SmfManager.disable_user(user.smf.username)
|
||||
user.smf.delete()
|
||||
if notify_user:
|
||||
@@ -47,7 +47,7 @@ class SmfTasks:
|
||||
groups = [user.profile.state.name]
|
||||
for group in user.groups.all():
|
||||
groups.append(str(group.name))
|
||||
logger.debug("Updating user %s smf groups to %s" % (user, groups))
|
||||
logger.debug(f"Updating user {user} smf groups to {groups}")
|
||||
try:
|
||||
SmfManager.update_groups(user.smf.username, groups)
|
||||
except:
|
||||
|
||||
@@ -195,7 +195,7 @@ class SmfManagerTestCase(TestCase):
|
||||
password = self.manager.generate_random_pass()
|
||||
|
||||
self.assertEqual(len(password), 16)
|
||||
self.assertIsInstance(password, type(''))
|
||||
self.assertIsInstance(password, str)
|
||||
|
||||
def test_gen_hash(self):
|
||||
pwhash = self.manager.gen_hash('username', 'test')
|
||||
|
||||
@@ -22,7 +22,7 @@ def activate_smf(request):
|
||||
logger.debug("activate_smf called by user %s" % request.user)
|
||||
# Valid now we get the main characters
|
||||
character = request.user.profile.main_character
|
||||
logger.debug("Adding smf user for user %s with main character %s" % (request.user, character))
|
||||
logger.debug(f"Adding smf user for user {request.user} with main character {character}")
|
||||
result = SmfManager.add_user(SmfTasks.get_username(request.user), request.user.email, ['Member'], character.character_id)
|
||||
# if empty we failed
|
||||
if result[0] != "":
|
||||
|
||||
@@ -21,15 +21,15 @@ class Teamspeak3Service(ServicesHook):
|
||||
self.name_format = '[{corp_ticker}]{character_name}'
|
||||
|
||||
def delete_user(self, user, notify_user=False):
|
||||
logger.debug('Deleting user %s %s account' % (user, self.name))
|
||||
logger.debug(f'Deleting user {user} {self.name} account')
|
||||
return Teamspeak3Tasks.delete_user(user, notify_user=notify_user)
|
||||
|
||||
def update_groups(self, user):
|
||||
logger.debug('Updating %s groups for %s' % (self.name, user))
|
||||
logger.debug(f'Updating {self.name} groups for {user}')
|
||||
Teamspeak3Tasks.update_groups.delay(user.pk)
|
||||
|
||||
def validate_user(self, user):
|
||||
logger.debug('Validating user %s %s account' % (user, self.name))
|
||||
logger.debug(f'Validating user {user} {self.name} account')
|
||||
if Teamspeak3Tasks.has_account(user) and not self.service_active_for_user(user):
|
||||
self.delete_user(user, notify_user=True)
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ class Teamspeak3Manager:
|
||||
try:
|
||||
ret = self.server.send_command('customsearch', {'ident': 'sso_uid', 'pattern': uid})
|
||||
if ret and 'keys' in ret and 'cldbid' in ret['keys']:
|
||||
logger.debug("Got userid %s for uid %s" % (ret['keys']['cldbid'], uid))
|
||||
logger.debug("Got userid {} for uid {}".format(ret['keys']['cldbid'], uid))
|
||||
return ret['keys']['cldbid']
|
||||
except TeamspeakError as e:
|
||||
if not e.code == '1281':
|
||||
@@ -71,7 +71,7 @@ class Teamspeak3Manager:
|
||||
continue
|
||||
logger.debug("Checking group %s" % group)
|
||||
if group['keys']['name'] == groupname:
|
||||
logger.debug("Found group %s, returning id %s" % (groupname, group['keys']['sgid']))
|
||||
logger.debug("Found group {}, returning id {}".format(groupname, group['keys']['sgid']))
|
||||
return group['keys']['sgid']
|
||||
logger.debug("Group %s not found on server." % groupname)
|
||||
return None
|
||||
@@ -93,7 +93,7 @@ class Teamspeak3Manager:
|
||||
self.server.send_command('servergroupaddperm',
|
||||
{'sgid': sgid, 'permsid': 'i_group_needed_member_remove_power', 'permvalue': 100,
|
||||
'permnegated': 0, 'permskip': 0})
|
||||
logger.info("Created group on TS3 server with name %s and id %s" % (groupname, sgid))
|
||||
logger.info(f"Created group on TS3 server with name {groupname} and id {sgid}")
|
||||
return sgid
|
||||
|
||||
def _user_group_list(self, cldbid):
|
||||
@@ -128,7 +128,7 @@ class Teamspeak3Manager:
|
||||
for group in group_cache:
|
||||
if group['keys']['type'] != '1':
|
||||
continue
|
||||
logger.debug("Assigning name/id dict: %s = %s" % (group['keys']['name'], group['keys']['sgid']))
|
||||
logger.debug("Assigning name/id dict: {} = {}".format(group['keys']['name'], group['keys']['sgid']))
|
||||
outlist[group['keys']['name']] = group['keys']['sgid']
|
||||
else:
|
||||
logger.error("Received empty group cache while retrieving group cache from TS3 server. 1024 error.")
|
||||
@@ -136,24 +136,24 @@ class Teamspeak3Manager:
|
||||
return outlist
|
||||
|
||||
def _add_user_to_group(self, uid, groupid):
|
||||
logger.debug("Adding group id %s to TS3 user id %s" % (groupid, uid))
|
||||
logger.debug(f"Adding group id {groupid} to TS3 user id {uid}")
|
||||
user_groups = self._user_group_list(uid)
|
||||
|
||||
if groupid not in user_groups.values():
|
||||
logger.debug("User does not have group already. Issuing command to add.")
|
||||
self.server.send_command('servergroupaddclient',
|
||||
{'sgid': str(groupid), 'cldbid': uid})
|
||||
logger.info("Added user id %s to group id %s on TS3 server." % (uid, groupid))
|
||||
logger.info(f"Added user id {uid} to group id {groupid} on TS3 server.")
|
||||
|
||||
def _remove_user_from_group(self, uid, groupid):
|
||||
logger.debug("Removing group id %s from TS3 user id %s" % (groupid, uid))
|
||||
logger.debug(f"Removing group id {groupid} from TS3 user id {uid}")
|
||||
user_groups = self._user_group_list(uid)
|
||||
|
||||
if str(groupid) in user_groups.values():
|
||||
logger.debug("User is in group. Issuing command to remove.")
|
||||
self.server.send_command('servergroupdelclient',
|
||||
{'sgid': str(groupid), 'cldbid': uid})
|
||||
logger.info("Removed user id %s from group id %s on TS3 server." % (uid, groupid))
|
||||
logger.info(f"Removed user id {uid} from group id {groupid} on TS3 server.")
|
||||
|
||||
def _sync_ts_group_db(self):
|
||||
logger.debug("_sync_ts_group_db function called.")
|
||||
@@ -162,20 +162,20 @@ class Teamspeak3Manager:
|
||||
local_groups = TSgroup.objects.all()
|
||||
logger.debug("Comparing remote groups to TSgroup objects: %s" % local_groups)
|
||||
for key in remote_groups:
|
||||
logger.debug("Typecasting remote_group value at position %s to int: %s" % (key, remote_groups[key]))
|
||||
logger.debug(f"Typecasting remote_group value at position {key} to int: {remote_groups[key]}")
|
||||
remote_groups[key] = int(remote_groups[key])
|
||||
|
||||
for group in local_groups:
|
||||
logger.debug("Checking local group %s" % group)
|
||||
if group.ts_group_id not in remote_groups.values():
|
||||
logger.debug(
|
||||
"Local group id %s not found on server. Deleting model %s" % (group.ts_group_id, group))
|
||||
f"Local group id {group.ts_group_id} not found on server. Deleting model {group}")
|
||||
TSgroup.objects.filter(ts_group_id=group.ts_group_id).delete()
|
||||
for key in remote_groups:
|
||||
g = TSgroup(ts_group_id=remote_groups[key], ts_group_name=key)
|
||||
q = TSgroup.objects.filter(ts_group_id=g.ts_group_id)
|
||||
if not q:
|
||||
logger.debug("Local group does not exist for TS group %s. Creating TSgroup model %s" % (
|
||||
logger.debug("Local group does not exist for TS group {}. Creating TSgroup model {}".format(
|
||||
remote_groups[key], g))
|
||||
g.save()
|
||||
except TeamspeakError as e:
|
||||
@@ -199,7 +199,7 @@ class Teamspeak3Manager:
|
||||
'tokendescription': username_clean,
|
||||
'tokencustomset': "ident=sso_uid value=%s" % username_clean})
|
||||
except TeamspeakError as e:
|
||||
logger.error("Failed to add teamspeak user %s: %s" % (username_clean, str(e)))
|
||||
logger.error(f"Failed to add teamspeak user {username_clean}: {str(e)}")
|
||||
return "",""
|
||||
|
||||
try:
|
||||
@@ -207,12 +207,12 @@ class Teamspeak3Manager:
|
||||
logger.info("Created permission token for user %s on TS3 server" % username_clean)
|
||||
return username_clean, token
|
||||
except:
|
||||
logger.exception("Failed to add teamspeak user %s - received response: %s" % (username_clean, ret))
|
||||
logger.exception(f"Failed to add teamspeak user {username_clean} - received response: {ret}")
|
||||
return "", ""
|
||||
|
||||
def delete_user(self, uid):
|
||||
user = self._get_userid(uid)
|
||||
logger.debug("Deleting user %s with id %s from TS3 server." % (user, uid))
|
||||
logger.debug(f"Deleting user {user} with id {uid} from TS3 server.")
|
||||
if user:
|
||||
clients = self.server.send_command('clientlist')
|
||||
if isinstance(clients, dict):
|
||||
@@ -226,18 +226,18 @@ class Teamspeak3Manager:
|
||||
self.server.send_command('clientkick', {'clid': client['keys']['clid'], 'reasonid': 5,
|
||||
'reasonmsg': 'Auth service deleted'})
|
||||
except:
|
||||
logger.exception("Failed to delete user id %s from TS3 - received response %s" % (uid, client))
|
||||
logger.exception(f"Failed to delete user id {uid} from TS3 - received response {client}")
|
||||
return False
|
||||
try:
|
||||
ret = self.server.send_command('clientdbdelete', {'cldbid': user})
|
||||
except TeamspeakError as e:
|
||||
logger.error("Failed to delete teamspeak user %s: %s" % (uid, str(e)))
|
||||
logger.error(f"Failed to delete teamspeak user {uid}: {str(e)}")
|
||||
return False
|
||||
if ret == '0':
|
||||
logger.info("Deleted user with id %s from TS3 server." % uid)
|
||||
return True
|
||||
else:
|
||||
logger.exception("Failed to delete user id %s from TS3 - received response %s" % (uid, ret))
|
||||
logger.exception(f"Failed to delete user id {uid} from TS3 - received response {ret}")
|
||||
return False
|
||||
else:
|
||||
logger.warn("User with id %s not found on TS3 server. Assuming succesful deletion." % uid)
|
||||
@@ -255,7 +255,7 @@ class Teamspeak3Manager:
|
||||
return self.add_user(user, username)
|
||||
|
||||
def update_groups(self, uid, ts_groups):
|
||||
logger.debug("Updating uid %s TS3 groups %s" % (uid, ts_groups))
|
||||
logger.debug(f"Updating uid {uid} TS3 groups {ts_groups}")
|
||||
userid = self._get_userid(uid)
|
||||
addgroups = []
|
||||
remgroups = []
|
||||
@@ -273,9 +273,9 @@ class Teamspeak3Manager:
|
||||
remgroups.append(user_ts_groups[user_ts_group_key])
|
||||
|
||||
for g in addgroups:
|
||||
logger.info("Adding Teamspeak user %s into group %s" % (userid, g))
|
||||
logger.info(f"Adding Teamspeak user {userid} into group {g}")
|
||||
self._add_user_to_group(userid, g)
|
||||
|
||||
for g in remgroups:
|
||||
logger.info("Removing Teamspeak user %s from group %s" % (userid, g))
|
||||
logger.info(f"Removing Teamspeak user {userid} from group {g}")
|
||||
self._remove_user_from_group(userid, g)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.2 on 2016-12-12 01:11
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.2 on 2016-12-12 01:33
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.2 on 2016-12-12 03:14
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.5 on 2017-02-02 05:59
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
from django.conf import settings
|
||||
@@ -23,12 +22,12 @@ def migrate_service_enabled(apps, schema_editor):
|
||||
|
||||
perm = Permission.objects.get(codename='access_teamspeak3')
|
||||
|
||||
member_group_name = getattr(settings, str('DEFAULT_AUTH_GROUP'), 'Member')
|
||||
blue_group_name = getattr(settings, str('DEFAULT_BLUE_GROUP'), 'Blue')
|
||||
member_group_name = getattr(settings, 'DEFAULT_AUTH_GROUP', 'Member')
|
||||
blue_group_name = getattr(settings, 'DEFAULT_BLUE_GROUP', 'Blue')
|
||||
|
||||
# Migrate members
|
||||
if Teamspeak3User.objects.filter(user__groups__name=member_group_name).exists() or \
|
||||
getattr(settings, str('ENABLE_AUTH_TEAMSPEAK3'), False):
|
||||
getattr(settings, 'ENABLE_AUTH_TEAMSPEAK3', False):
|
||||
try:
|
||||
group = Group.objects.get(name=member_group_name)
|
||||
group.permissions.add(perm)
|
||||
@@ -37,7 +36,7 @@ def migrate_service_enabled(apps, schema_editor):
|
||||
|
||||
# Migrate blues
|
||||
if Teamspeak3User.objects.filter(user__groups__name=blue_group_name).exists() or \
|
||||
getattr(settings, str('ENABLE_BLUE_TEAMSPEAK3'), False):
|
||||
getattr(settings, 'ENABLE_BLUE_TEAMSPEAK3', False):
|
||||
try:
|
||||
group = Group.objects.get(name=blue_group_name)
|
||||
group.permissions.add(perm)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.11.10 on 2018-02-23 06:13
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
@@ -16,7 +16,7 @@ class Teamspeak3User(models.Model):
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("access_teamspeak3", u"Can access the Teamspeak3 service"),
|
||||
("access_teamspeak3", "Can access the Teamspeak3 service"),
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ def trigger_all_ts_update():
|
||||
|
||||
@receiver(m2m_changed, sender=AuthTS.ts_group.through)
|
||||
def m2m_changed_authts_group(sender, instance, action, *args, **kwargs):
|
||||
logger.debug("Received m2m_changed from %s ts_group with action %s" % (instance, action))
|
||||
logger.debug(f"Received m2m_changed from {instance} ts_group with action {action}")
|
||||
if action == "post_add" or action == "post_remove":
|
||||
transaction.on_commit(trigger_all_ts_update)
|
||||
|
||||
@@ -45,5 +45,5 @@ post_delete.connect(post_delete_authts, sender=StateGroup)
|
||||
def check_groups_on_state_change(sender, user, state, **kwargs):
|
||||
def trigger_update():
|
||||
Teamspeak3Tasks.update_groups.delay(user.pk)
|
||||
logger.debug("Received state_changed signal from {}".format(user))
|
||||
logger.debug(f"Received state_changed signal from {user}")
|
||||
transaction.on_commit(trigger_update)
|
||||
|
||||
@@ -20,7 +20,7 @@ class Teamspeak3Tasks:
|
||||
@classmethod
|
||||
def delete_user(cls, user, notify_user=False):
|
||||
if cls.has_account(user):
|
||||
logger.debug("User %s has TS3 account %s. Deleting." % (user, user.teamspeak3.uid))
|
||||
logger.debug(f"User {user} has TS3 account {user.teamspeak3.uid}. Deleting.")
|
||||
with Teamspeak3Manager() as ts3man:
|
||||
if ts3man.delete_user(user.teamspeak3.uid):
|
||||
user.teamspeak3.delete()
|
||||
@@ -71,13 +71,13 @@ class Teamspeak3Tasks:
|
||||
groups[ts_group.ts_group_name] = ts_group.ts_group_id
|
||||
for stategroup in user.profile.state.stategroup_set.all():
|
||||
groups[stategroup.ts_group.ts_group_name] = stategroup.ts_group.ts_group_id
|
||||
logger.debug("Updating user %s teamspeak3 groups to %s" % (user, groups))
|
||||
logger.debug(f"Updating user {user} teamspeak3 groups to {groups}")
|
||||
try:
|
||||
with Teamspeak3Manager() as ts3man:
|
||||
ts3man.update_groups(user.teamspeak3.uid, groups)
|
||||
logger.debug("Updated user %s teamspeak3 groups." % user)
|
||||
except TeamspeakError as e:
|
||||
logger.error("Error occured while syncing TS groups for %s: %s" % (user, str(e)))
|
||||
logger.error(f"Error occured while syncing TS groups for {user}: {str(e)}")
|
||||
raise self.retry(countdown=60*10)
|
||||
else:
|
||||
logger.debug("User does not have a teamspeak3 account")
|
||||
|
||||
@@ -8,7 +8,7 @@ class ConnectionError:
|
||||
self.port = port
|
||||
|
||||
def __str__(self):
|
||||
return 'Error connecting to host %s port %s' % (self.ip, self.port)
|
||||
return f'Error connecting to host {self.ip} port {self.port}'
|
||||
|
||||
|
||||
ts3_escape = {
|
||||
@@ -32,7 +32,7 @@ class TS3Proto:
|
||||
EOL = b'\n\r'
|
||||
|
||||
def __init__(self):
|
||||
self._log = logging.getLogger('%s.%s' % (__name__, self.__class__.__name__))
|
||||
self._log = logging.getLogger(f'{__name__}.{self.__class__.__name__}')
|
||||
self._conn = None
|
||||
self._connected = False
|
||||
|
||||
@@ -122,10 +122,10 @@ class TS3Proto:
|
||||
if isinstance(keys[key], list):
|
||||
ncstr = []
|
||||
for nest in keys[key]:
|
||||
ncstr.append("%s=%s" % (key, self._escape_str(nest)))
|
||||
ncstr.append(f"{key}={self._escape_str(nest)}")
|
||||
cstr.append("|".join(ncstr))
|
||||
else:
|
||||
cstr.append("%s=%s" % (key, self._escape_str(keys[key])))
|
||||
cstr.append(f"{key}={self._escape_str(keys[key])}")
|
||||
|
||||
# Add in options
|
||||
if opts:
|
||||
|
||||
@@ -24,7 +24,7 @@ def activate_teamspeak3(request):
|
||||
|
||||
character = request.user.profile.main_character
|
||||
with Teamspeak3Manager() as ts3man:
|
||||
logger.debug("Adding TS3 user for user %s with main character %s" % (request.user, character))
|
||||
logger.debug(f"Adding TS3 user for user {request.user} with main character {character}")
|
||||
result = ts3man.add_user(request.user, Teamspeak3Tasks.get_username(request.user))
|
||||
|
||||
# if its empty we failed
|
||||
|
||||
@@ -23,11 +23,11 @@ class XenforoService(ServicesHook):
|
||||
return 'XenForo Forums'
|
||||
|
||||
def delete_user(self, user, notify_user=False):
|
||||
logger.debug('Deleting user %s %s account' % (user, self.name))
|
||||
logger.debug(f'Deleting user {user} {self.name} account')
|
||||
return XenforoTasks.delete_user(user, notify_user=notify_user)
|
||||
|
||||
def validate_user(self, user):
|
||||
logger.debug('Validating user %s %s account' % (user, self.name))
|
||||
logger.debug(f'Validating user {user} {self.name} account')
|
||||
if XenforoTasks.has_account(user) and not self.service_active_for_user(user):
|
||||
self.delete_user(user, notify_user=True)
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.2 on 2016-12-12 03:14
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Generated by Django 1.10.5 on 2017-02-02 05:59
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
from django.conf import settings
|
||||
@@ -23,12 +22,12 @@ def migrate_service_enabled(apps, schema_editor):
|
||||
|
||||
perm = Permission.objects.get(codename='access_xenforo')
|
||||
|
||||
member_group_name = getattr(settings, str('DEFAULT_AUTH_GROUP'), 'Member')
|
||||
blue_group_name = getattr(settings, str('DEFAULT_BLUE_GROUP'), 'Blue')
|
||||
member_group_name = getattr(settings, 'DEFAULT_AUTH_GROUP', 'Member')
|
||||
blue_group_name = getattr(settings, 'DEFAULT_BLUE_GROUP', 'Blue')
|
||||
|
||||
# Migrate members
|
||||
if XenforoUser.objects.filter(user__groups__name=member_group_name).exists() or \
|
||||
getattr(settings, str('ENABLE_AUTH_XENFORO'), False):
|
||||
getattr(settings, 'ENABLE_AUTH_XENFORO', False):
|
||||
try:
|
||||
group = Group.objects.get(name=member_group_name)
|
||||
group.permissions.add(perm)
|
||||
@@ -37,7 +36,7 @@ def migrate_service_enabled(apps, schema_editor):
|
||||
|
||||
# Migrate blues
|
||||
if XenforoUser.objects.filter(user__groups__name=blue_group_name).exists() or \
|
||||
getattr(settings, str('ENABLE_BLUE_XENFORO'), False):
|
||||
getattr(settings, 'ENABLE_BLUE_XENFORO', False):
|
||||
try:
|
||||
group = Group.objects.get(name=blue_group_name)
|
||||
group.permissions.add(perm)
|
||||
|
||||
@@ -13,5 +13,5 @@ class XenforoUser(models.Model):
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
("access_xenforo", u"Can access the XenForo service"),
|
||||
("access_xenforo", "Can access the XenForo service"),
|
||||
)
|
||||
|
||||
@@ -17,7 +17,7 @@ class XenforoTasks:
|
||||
@classmethod
|
||||
def delete_user(cls, user, notify_user=False):
|
||||
if cls.has_account(user):
|
||||
logger.debug("User %s has a XenForo account %s. Deleting." % (user, user.xenforo.username))
|
||||
logger.debug(f"User {user} has a XenForo account {user.xenforo.username}. Deleting.")
|
||||
if XenForoManager.disable_user(user.xenforo.username) == 200:
|
||||
user.xenforo.delete()
|
||||
if notify_user:
|
||||
|
||||
@@ -180,4 +180,4 @@ class XenforoManagerTestCase(TestCase):
|
||||
password = self.manager._XenForoManager__generate_password()
|
||||
|
||||
self.assertEqual(len(password), 16)
|
||||
self.assertIsInstance(password, type(''))
|
||||
self.assertIsInstance(password, str)
|
||||
|
||||
@@ -21,7 +21,7 @@ ACCESS_PERM = 'xenforo.access_xenforo'
|
||||
def activate_xenforo_forum(request):
|
||||
logger.debug("activate_xenforo_forum called by user %s" % request.user)
|
||||
character = request.user.profile.main_character
|
||||
logger.debug("Adding XenForo user for user %s with main character %s" % (request.user, character))
|
||||
logger.debug(f"Adding XenForo user for user {request.user} with main character {character}")
|
||||
result = XenForoManager.add_user(XenforoTasks.get_username(request.user), request.user.email)
|
||||
# Based on XenAPI's response codes
|
||||
if result['response']['status_code'] == 200:
|
||||
|
||||
Reference in New Issue
Block a user