Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Проверка пользователя на состояние в группе [RSS Feed]

#1 Июнь 24, 2013 20:47:08

easthy
Зарегистрирован: 2013-05-24
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка пользователя на состояние в группе

ЗДравствуйте
Подскажите, что тут нужно изменить…

Делаю проверку

@user_passes_test(user_in_group("moderators", "user_extended"))

Если пользователь в группе moderators - авторизация не проходит
Если пользователь в группе user_extended - проходит

Если поменять местами аргументы
@user_passes_test(user_in_group("user_extended", "moderators"))
То moderator проходит

def user_in_group(*args):
    for arg in args:
        def func(user):
            return Group.objects.get(name=arg) in user.groups.all()
    return func        

Отредактировано easthy (Июнь 24, 2013 20:50:27)

Офлайн

#2 Июнь 25, 2013 06:44:47

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Проверка пользователя на состояние в группе

for i in [1,2,3,4]:pass
print i
Угадай с одного раза чему будет равна i после завершения цикла?



Офлайн

#3 Июнь 25, 2013 06:46:26

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Проверка пользователя на состояние в группе

Вообще непонятно, чего ты этим добиться хочешь, конкретно, зачем тут функция в цикле?



Офлайн

#4 Июнь 28, 2013 18:38:52

easthy
Зарегистрирован: 2013-05-24
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка пользователя на состояние в группе

def user_in_group(*args):
    def func(user):
        for arg in args:
            if Group.objects.get(name=arg) in user.groups.all():
                return Group.objects.get(name=arg) in user.groups.all()
    return func
решил так
зачем фукнция? чтобы получить какой пользователь делает запрос

Офлайн

#5 Июнь 28, 2013 19:01:48

Sergei
От:
Зарегистрирован: 2011-10-04
Сообщения: 29
Репутация: +  4  -
Профиль   Отправить e-mail  

Проверка пользователя на состояние в группе

между

easthy
 
for arg in args: 
    def func(user):
и
easthy
def func(user): 
    for arg in args:
пробегал вопрос
FishHook
зачем тут функция в цикле?
а не
easthy
зачем фукнция?

я дико извиняюсь за адвокатскую практику :)



Офлайн

  • Начало
  • » Django
  • » Проверка пользователя на состояние в группе[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version