Size: a a a

2021 May 17

SK

Sergio Keler in SPb Python
Пиши на хабре. Он под это заточен. Если не про айти, то есть ЖЖ и куча подобных мест.
источник

DS

David Shiko in SPb Python
На хабре стыдно, там слишком высокопарная публика)
источник

SK

Sergio Keler in SPb Python
Нормально там. Коменты отключи, если стыдно.
Я туда пишу без стыда, пффф.
источник

I

Igor in SPb Python
На хабре уже давно домохозяйки рецепты постят и пишут о том как стоят дачу, ресурс превратился в жж
источник

DS

David Shiko in SPb Python
Ну так благодаря таким как я))
источник

I

Igor in SPb Python
Спасибо что стараетесь 🙂
источник

MB

M B in SPb Python
Мне кажется нет какой-то конкретной платформы для этого. Смотря опять-таки какие цели преследуешь. Можешь хоть на тот же пикабу писать. В тележке писать тоже относительно неплохой вариант. В любом случае это обычно мало кого заинтересует, если не будет необычной подачи
источник

I

Igor in SPb Python
Высокопарная публика там уже давно не живет, скорее блогеры от компаний и маркетологи
источник

DS

David Shiko in SPb Python
Ок)
источник

I

Igor in SPb Python
Как вариант
vc.ru
Или
medium.com
Ну или в ноушене
Notion.so
источник

DS

David Shiko in SPb Python
Помогите пожалуйста грамотно реализовать ф-ю проверки доступа.
Вот моя текущая ф-я:

def check_access(role: str, required_roles: list, true_cond=False, raise_=True) -> bool:
   if role in (required_roles + [config.ADMIN_ROLE]) or true_cond:
       return True
   else:
       if raise_:
           raise Exception('bla bla')
       else:
           return False

Но у нее нет возможности делать отложенную проверку с дополнительными параметрами, т.е.
я сперва проверяю роли, потом иногда проверяю, что роль в условном белом списке (делаю запрос к бд),
и снова проверяю доступ, эта повторная проверка выглядит костыльно
источник

A

Alexander in SPb Python
def check_access(role: str, required_roles: list, true_cond=False, raise_=True) -> bool:
   if role in (required_roles + [config.ADMIN_ROLE]) or true_cond:
       return True
   if raise_:
       raise Exception('bla bla')
   return False
источник

A

Alexander in SPb Python
не стоит усложнять логику там где это не надо
источник

p

pragus in SPb Python
роли лучше положить в set
источник

p

pragus in SPb Python
и требуемые роли тоже надо в set.
источник

p

pragus in SPb Python
actual = {'add', 'update'}
required = {'add', 'update', 'modify'}
grant = actual.difference(required)
источник

p

pragus in SPb Python
Хранишь у пользователя set из ролей и через вычитание проверяешь достаточно ли прав.
источник

SD

Sergey D in SPb Python
Что последняя строка даёт по смыслу?
источник

p

pragus in SPb Python
А, да. Вычитание не подходит. Надо actual.intersection(required) == required
источник

SD

Sergey D in SPb Python
Может просто перевернуть вычитание? Если not required-actual, то разрешаем. Т.к. пустой r-a означает, что в actual есть всё, что лежит в required
источник