Test change

This commit is contained in:
Виктор Гладких 2019-10-10 15:20:13 +03:00
parent 56c0927a52
commit ab5a66afe2
4 changed files with 38 additions and 8 deletions

View File

@ -13,12 +13,15 @@ class IsCommentModerator(permissions.BasePermission):
# so we'll always allow GET, HEAD or OPTIONS requests. # so we'll always allow GET, HEAD or OPTIONS requests.
if request.method in permissions.SAFE_METHODS: if request.method in permissions.SAFE_METHODS:
return True return True
# user owner is user request # # user owner is user request
if obj.user == request.user: # if obj.user == request.user:
return True # return True
# Must have role # Must have role
role = Role.objects.filter(role=2, country__language=obj.language).first() # 'Comments moderator' # ,country__languages__id=obj.language_id
role = Role.objects.filter(role=2,
country__languages__id=obj.language_id)\
.first() # 'Comments moderator'
is_access = UserRole.objects.filter(user=request.user, role=role).exists() is_access = UserRole.objects.filter(user=request.user, role=role).exists()
if obj.user != request.user and is_access: if obj.user != request.user and is_access:
return True return True

View File

@ -7,17 +7,25 @@ from http.cookies import SimpleCookie
from location.models import Country from location.models import Country
from account.models import Role, User, UserRole from account.models import Role, User, UserRole
from comment.models import Comment from comment.models import Comment
from translation.models import Language
class CommentModeratorPermissionTests(APITestCase): class CommentModeratorPermissionTests(APITestCase):
def setUp(self): def setUp(self):
self.lang = Language.objects.create(
title='Russia',
locale='ru-RU'
)
self.lang.save()
self.country_ru = Country.objects.create( self.country_ru = Country.objects.create(
name='{"ru-RU":"Russia"}', name='{"ru-RU":"Russia"}',
code='23', code='23',
low_price=15, low_price=15,
high_price=150000 high_price=150000,
) )
self.country_ru.languages.add(self.lang)
self.country_ru.save() self.country_ru.save()
self.role = Role.objects.create( self.role = Role.objects.create(
@ -42,7 +50,8 @@ class CommentModeratorPermissionTests(APITestCase):
self.comment = Comment.objects.create(text='Test comment', mark=1, self.comment = Comment.objects.create(text='Test comment', mark=1,
user=self.user_test["user"], user=self.user_test["user"],
object_id= self.country_ru.pk, object_id= self.country_ru.pk,
content_type_id=content_type.id content_type_id=content_type.id,
language=self.lang
) )
self.comment.save() self.comment.save()
self.url = reverse('back:comment:comment-crud', kwargs={"id": self.comment.id}) self.url = reverse('back:comment:comment-crud', kwargs={"id": self.comment.id})

View File

@ -0,0 +1,18 @@
# Generated by Django 2.2.4 on 2019-10-10 12:05
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('location', '0011_country_language'),
]
operations = [
migrations.RenameField(
model_name='country',
old_name='language',
new_name='languages',
),
]

View File

@ -18,7 +18,7 @@ class Country(TranslatedFieldsMixin, SVGImageMixin, ProjectBaseMixin):
code = models.CharField(max_length=255, unique=True, verbose_name=_('Code')) code = models.CharField(max_length=255, unique=True, verbose_name=_('Code'))
low_price = models.IntegerField(default=25, verbose_name=_('Low price')) low_price = models.IntegerField(default=25, verbose_name=_('Low price'))
high_price = models.IntegerField(default=50, verbose_name=_('High price')) high_price = models.IntegerField(default=50, verbose_name=_('High price'))
language = models.ManyToManyField(Language, verbose_name=_('Language')) languages = models.ManyToManyField(Language, verbose_name=_('Languages'))
class Meta: class Meta:
"""Meta class.""" """Meta class."""