декоратор для установки атрибутов функции

Я хочу, чтобы разные функции выполнялись только в том случае, если вошедший в систему пользователь имеет требуемый уровень разрешений.

Чтобы сделать мою жизнь сложнее, я просто хочу использовать декораторы. Ниже я пытаюсь установить атрибутpermission наукрашен' функции - как показано ниже.

def permission(permission_required):
    def wrapper(func):
        def inner(*args, **kwargs):
            setattr(func, 'permission_required', permission_required)
            return func(*args, **kwargs)
        return inner
    return wrapper

@permission('user')
def do_x(arg1, arg2):

    ...

@permission('admin')
def do_y(arg1, arg2):
    ...

Но, когда я делаю:

fn = do_x
if logged_in_user.access_level == fn.permission_required:
    ...

Я получаю ошибку'function' object has no attribute 'permission_required'

Что мне не хватает?

Ответы на вопрос(2)

Ваш ответ на вопрос