SMF Forum Integration

* Added SMF Forum Support

* removed comment

* Fixed bugs.

* removed unused SQL statement

* Fixed Grammer in debug code

* Fixed Null Bug

* Update operationmanagement.html

* fixed bug

* fixed error

* Users now show up on the posts correctly
This commit is contained in:
Mr McClain
2016-04-06 20:32:02 -05:00
parent d8d663519b
commit cfe0e23430
11 changed files with 464 additions and 6 deletions

View File

@@ -10,6 +10,7 @@ from .tasks import update_forum_groups
from .tasks import update_ipboard_groups
from .tasks import update_discord_groups
from .tasks import update_teamspeak3_groups
from .tasks import update_smf_groups
from authentication.models import AuthServicesInfo
from services.models import AuthTS
@@ -27,6 +28,8 @@ def m2m_changed_user_groups(sender, instance, action, *args, **kwargs):
update_teamspeak3_groups.delay(instance.pk)
if auth.forum_username:
update_forum_groups.delay(instance.pk)
if auth.smf_username:
update_smf_groups.delay(instance.pk)
if auth.ipboard_username:
update_ipboard_groups.delay(instance.pk)
if auth.discord_uid:

View File

@@ -11,6 +11,7 @@ from services.managers.phpbb3_manager import Phpbb3Manager
from services.managers.ipboard_manager import IPBoardManager
from services.managers.teamspeak3_manager import Teamspeak3Manager
from services.managers.discord_manager import DiscordManager, DiscordAPIManager
from services.managers.smf_manager import smfManager
from services.models import AuthTS
from services.models import TSgroup
from authentication.models import AuthServicesInfo
@@ -107,6 +108,25 @@ def update_forum_groups(pk):
raise self.retry(countdown = 60 * 10)
logger.debug("Updated user %s forum groups." % user)
@task
def update_smf_groups(pk):
user = User.objects.get(pk=pk)
logger.debug("Updating smf groups for user %s" % user)
authserviceinfo = AuthServicesInfo.objects.get(user=user)
groups = []
for group in user.groups.all():
groups.append(str(group.name))
if len(groups) == 0:
groups.append('empty')
logger.debug("Updating user %s smf groups to %s" % (user, groups))
try:
smfManager.update_groups(authserviceinfo.smf_username, groups)
except:
logger.exception("smf group sync failed for %s, retrying in 10 mins" % user)
raise self.retry(countdown = 60 * 10)
logger.debug("Updated user %s smf groups." % user)
@task
def update_ipboard_groups(pk):
user = User.objects.get(pk=pk)