web2py: ограничить пользователя только строками, созданными пользователем - PullRequest
3 голосов
/ 26 апреля 2011

Я хотел бы ограничить пользователей записями в базе данных, только они создали. Есть ли какой-нибудь стандартный способ web2py сделать это? auth.requires_permission выглядел хорошо, но, похоже, он требует жестко закодированного идентификатора строки, что не решает мою проблему.

Ответы [ 5 ]

1 голос
/ 27 апреля 2011

Это не должно обрабатываться web2py. Предполагается, что ваша база данных должна обрабатывать пользовательские разрешения для этого, поэтому вам нужно обратиться к документации по используемому вами бэкэнду БД.

Кроме того, если у каждого пользователя есть отдельная учетная запись на вашем внешнем интерфейсе, которая подключается к одному пользователю базы данных, вы не сможете контролировать разрешения вообще без набора независимого кода безопасности, добавленного сверху. и вокруг вашей базы данных. Например, таблица в базе данных, которая просматривает поле, предоставляемое web2py, когда он подключается, чтобы определить «пользователя», а затем соответствующим образом установить привилегии, закодированные вручную. По этой причине у пользователей баз данных есть пользователи.

0 голосов
/ 10 марта 2019

Используйте функцию обратного вызова при удалении и возвращайте True, если пользователь не создал строку.

db.some_table._bedfore_delete = lambda query: False if db.some_table.created_by == auth.user_id else True
0 голосов
/ 12 декабря 2012

Возможно, попробуйте общие фильтры: http://web2py.com/books/default/chapter/29/06?search=common+filter#Common-filters

db.some_table._common_filter = lambda query: db.some_table.created_by == auth.user.id
0 голосов
/ 27 сентября 2011

Добавить поле «made_by» в БД. Вставьте идентификатор пользователя при вставке записи. Используйте это для фильтрации при выборе.

0 голосов
/ 27 апреля 2011

Вы можете сделать это, используя CRUD

http://web2py.com/book/default/chapter/08#Authorization-and-CRUD

Вы можете определить разрешения для каждой записи, с небольшим количеством кода вы сможете установить разрешения по умолчанию для идентификатора группы пользователей во время создания записи.

...