Improved group/role thing. Improved email sending (prepare for
OneClickAction).
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
import logging
|
||||
from django.apps import apps
|
||||
from django.contrib.auth.models import Group
|
||||
|
||||
app_config = apps.get_containing_app_config(__package__)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@@ -12,5 +14,24 @@ def get_group_members(group_name, ignore_missing=False):
|
||||
except Group.DoesNotExist:
|
||||
if not ignore_missing:
|
||||
raise
|
||||
|
||||
return users
|
||||
|
||||
|
||||
def get_group_name_by_role(role):
|
||||
group_name_var = 'group_{}'.format(role)
|
||||
return getattr(app_config.settings, group_name_var, None)
|
||||
|
||||
|
||||
def get_users_by_role(role):
|
||||
users = []
|
||||
group_name = get_group_name_by_role(role)
|
||||
if group_name:
|
||||
users = get_group_members(group_name, ignore_missing=True)
|
||||
return users
|
||||
|
||||
|
||||
def has_role(user, role):
|
||||
group_name = get_group_name_by_role(role)
|
||||
if group_name and user.groups.filter(name=group_name).count():
|
||||
return True
|
||||
return False
|
||||
|
||||
Reference in New Issue
Block a user