diff --git a/sso/models.py b/sso/models.py index 3653ef6..3e72ccb 100644 --- a/sso/models.py +++ b/sso/models.py @@ -143,8 +143,8 @@ class Service(models.Model): url = models.CharField("Service URL", max_length=200, blank=True) active = models.BooleanField(default=True) api = models.CharField("API", max_length=200) - groups = models.ManyToManyField(Group, blank=False) - settings_json = JSONField("Service Settings", blank=True) + groups = models.ManyToManyField(Group, blank=True) + settings_json = JSONField("Service Settings", blank=True, default={}) class Meta: verbose_name = 'Service' @@ -165,7 +165,7 @@ class Service(models.Model): return self.name def save(self): - if not self.settings_json: + if not self.settings_json or self.settings_json == {}: if self.api: self.settings_json = self.settings else: @@ -225,7 +225,7 @@ class ServiceAccount(models.Model): else: self.service.api_class.disable_user(self.service_uid) - models.Model.save(self) + models.Model.save(self) @staticmethod def pre_delete_listener( **kwargs ): diff --git a/sso/views.py b/sso/views.py index df9590f..a4cf4fd 100644 --- a/sso/views.py +++ b/sso/views.py @@ -1,5 +1,7 @@ import hashlib import random +import re +import unicodedata from django.http import HttpResponseRedirect from django.shortcuts import render_to_response @@ -135,9 +137,7 @@ def service_add(request): form = clsform(request.POST) if form.is_valid(): - acc = ServiceAccount() - acc.user = request.user - acc.service = form.cleaned_data['service'] + acc = ServiceAccount(user=request.user, service=form.cleaned_data['service']) acc.character = form.cleaned_data['character'] if acc.service.settings['require_password']: @@ -149,7 +149,7 @@ def service_add(request): acc.password = None # Decode unicode and remove invalid characters - username = re.sub('[^a-zA-Z0-9_-]+', '', unicodedata.normalize('NFKD', self.character.name).encode('ASCII', 'ignore')) + username = re.sub('[^a-zA-Z0-9_-]+', '', unicodedata.normalize('NFKD', acc.character.name).encode('ASCII', 'ignore')) if acc.service.api_class.check_user(username): error = "Username already exists on the target service, please contact an admin." diff --git a/templates/sso/serviceaccount/created.html b/templates/sso/serviceaccount/created.html index e22d77c..dc92fa9 100644 --- a/templates/sso/serviceaccount/created.html +++ b/templates/sso/serviceaccount/created.html @@ -15,7 +15,7 @@ this is incorrect please raise a bug on the tracker. Service:{{ acc.service.name }} Service URL:{{ acc.service.url }} {% for key,value in ret.items %} -{{ key }}:{{ value }} +{{ key|title }}:{{ value }} {% endfor %}