В таблице Group, будут содержаться группы пользователей, которые имеют различные правадоступа. В данном случае это:
1. Оператор
2. Пользователь (Юзер)
Таблица User используется для записи пользователей прошедших аутоинтификацию. Там содержится логин пользователя, который уникален и не повторяется.
Для работы с этими таблицами необходимо их импортировать:
from django.contrib.auth.models import User, Group
Далее, при первичной аутоидентификации, данные вносятся в таблици:
# выполняется в блоке try - except, если таблица была пустой и туда ещё не
# вносились записи
try:
group = Group.objects.get(name='user')
except Group.DoesNotExist:
# вексение групп пользователей
group = Group(name='operators')
group.save()
group = Group(name='users')
group.save()
try:
user = User.objects.get(username=username)
except User.DoesNotExist:
# создание записи пользователя
user = User.objects.create_user(username, '', '')
# внесение в группу номер 2, т.е. 'user'
user.groups.add(2)
Таблица User, содержит в себе ссылку на таблицу Group, через встроенную 'подтаблицу'
groups.
Главное корректно заполнить таблицу Group, а далее, добавление прав доступа осуществляется коммандой add('нмер поля записи в таблице Group, соответсвующий определенной группе пользователей')
Процедура авторизации имеет следующий вид:
def avtorr(user):
# осуществляется проверка принадлежности копределенной группе пользователей
return True if user.groups.filter(name='user') else False
Далее, в тексте программы, вставляется проверка, Она вставляется в начале процедуры, которая обрабатывает html страницы, в которых разграничены права доступа.
if autor(request.user)==False:
return HttpResponseRedirect(reverse("имя процедуры, обрабатывающей случай когда нет прав доступа к данной странице"))
..сомнительная полезность блога, товарищ.. вот честно хотел найти что-то полезное, но отталкивает как отсутствие форматировани кода (для python это критично), так и множественные орфографиеческие и грамматические ошибки. Аутентификация, Авторизация.. пропущенные пробелы в словах.. Окончательно убило
ОтветитьУдалитьdef avtorr(user):
...
и потом его использование
if autor(request.user)==...
это блин даже не откомпилируется.
Куда вы торопитесь? К чему вообще делать это, если это делается так наспех..?
А мне понравилось словечко "аутоинтификация" XD
ОтветитьУдалить