16 lines
488 B
Python
16 lines
488 B
Python
# -*- coding: utf-8 -*-
|
|
from django.contrib.auth.mixins import UserPassesTestMixin
|
|
|
|
|
|
class ModelUserFieldPermissionMixin(UserPassesTestMixin):
|
|
model_permission_user_field = 'user'
|
|
|
|
def get_model_permission_user_field(self):
|
|
return self.model_permission_user_field
|
|
|
|
def test_func(self):
|
|
model_attr = self.get_model_permission_user_field()
|
|
current_user = self.request.user
|
|
|
|
return current_user == getattr(self.get_queryset().first(), model_attr)
|