How to check access rights for authenticated user using Django and Python

I need to check the permission required to authenticate a user using Django and Python. I provide my code below.

class Permission(models.Model):
    """docstring for Permission"""

    user_id = models.ForeignKey(User)
    class Meta:
        permissions = (
            ("view_reactor", "1"),
            ("find_reactor", "1"),
            ("controll_reactor", "0"),
        )

Views.py:

from django.contrib.auth.decorators import permission_required


def view_reactor(request):
    """ This function for to get serch screen. """

    return render(request, 'plant/view_reactor.html',
                        {'count': 1})

Here I need to check @permission_requiredthe decorator function according to the correct one userid. Suppose that the user who has logged on to the system has permission, ("view_reactor", "1"),then the view_reactorfunction view_reactorcan gain access to if ("view_reactor", "0")then it cannot be accessed.

+1
source share
2 answers

, - , - - ( -), , , Reactor, :

class Reactor(models.Model):
    # ^^^^^^
    # ....
    user_id = models.ForeignKey(User)

    class Meta:
        permissions = (
            ("view_reactor", "can view reactor"),
            ("find_reactor", "can find reactor"),
            ("controll_reactor", "can controll reactor"),
        )

from django.contrib.auth.decorators import permission_required

@permission_required('reactor.view_reactor')
def view_reactor(request):

,

+1

User, Permission, Group Class, Django?

models.py in exampleApp
class ExampleModel(models.Model):
    somefield = models.CharField(max_length=4)

"makemigration" "migrate", "add_examplemodel", "change_examplemodel", "delete_examplemodel". auto_permission DB.

models.py in exampleApp
class ExampleModel2(models.Model):
    somefield = models.CharField(max_length=4)
    class Meta:
        permissions = ( (permission_code, human_readable_permission_name), )

"makemigrations" "migrate" , , , Meta. ( , , )

.

Permission. .

, .

user = User.objects.get(id=someidnumber)
# User and Permissions Class have manytomany relationship.
user.permissions_set.add(permission, ... )
# you can set user 1 have one permission like view_reactor.
# you can set user 2 have two permission like view_reactor, find_reactor.
# you can give permissions to each user independently.

@permission_required decorator

, 1 view_reactor. 1 User.objects.get(id=user1_id).permissions_set.add(view_reactor permission). @permission_required decorator.

, .

license_required decorator

0

Source: https://habr.com/ru/post/1683645/


All Articles