switch role checking to local hobo table instead of querying wcs

This commit is contained in:
Frédéric Péters 2015-11-23 16:37:57 +01:00
parent b5b28efd08
commit 86e808d1f2
2 changed files with 8 additions and 10 deletions

View File

@ -19,6 +19,8 @@ from django.contrib.contenttypes import generic
from django.db import models
from django.utils.translation import ugettext_lazy as _
from hobo.agent.common.models import Role
from welco.utils import get_wcs_data
@ -40,5 +42,4 @@ class Inbox(models.Model):
comments = models.TextField(blank=True, null=True, verbose_name=_('Comments'))
def role_name(self):
return [x for x in get_wcs_data('api/roles').get('data')
if x['slug'] == self.role_slug][0]['name']
return Role.objects.get(uuid=self.role_slug).name

View File

@ -22,6 +22,8 @@ from django.http import HttpResponse, HttpResponseRedirect
from django.utils.translation import ugettext_lazy as _
from django.views.generic import TemplateView, DetailView
from hobo.agent.common.models import Role
from .models import Inbox
from welco.sources.mail.models import Mail
@ -42,10 +44,7 @@ class Dgs(HomeScreen):
source_klass = DgsMailHome
def check_user_ok(self):
mellon = self.request.session['mellon_session']
params = {'NameID': mellon['name_id_content']}
user_roles = get_wcs_data('api/user/', params).get('user_roles')
return 'DGS' in [x.get('name') for x in user_roles]
return 'DGS' in [x.name for x in self.request.user.groups.all()]
dgs = login_required(Dgs.as_view())
@ -73,9 +72,7 @@ class Dga(HomeScreen):
source_klass = DgaMailHome
def check_user_ok(self):
mellon = self.request.session['mellon_session']
params = {'NameID': mellon['name_id_content']}
user_roles = get_wcs_data('api/user/', params).get('user_roles')
user_roles = [x.name for x in self.request.user.groups.all()]
return any([x for x in user_roles if x['name'].startswith('DGA')])
dga = login_required(Dga.as_view())
@ -148,7 +145,7 @@ class MailTable(TemplateView):
mellon = self.request.session['mellon_session']
params['NameID'] = mellon['name_id_content']
user_roles = [x['slug'] for x in get_wcs_data('api/user/', params=params).get('user_roles')]
user_roles = [x.uuid for x in Role.objects.filter(user=self.request.user)]
mails = Mail.objects.filter(status='done-dga')
content_type = ContentType.objects.get_for_model(Mail)