Add a user method to check folder permission

User model is the most natural place for a permission check method,
however this means that we need to pass the full user object to
service model methods and TemplateList instead of user_id.
This commit is contained in:
Alexey Bezhan
2019-03-11 14:13:56 +00:00
parent 0f9207a161
commit e6d7f7ebeb
7 changed files with 42 additions and 36 deletions

View File

@@ -52,7 +52,7 @@ def conversation_reply(
templates_and_folders=TemplateList(
current_service,
template_folder_id=from_folder,
user_id=current_user.id,
user=current_user,
template_type='sms'
),
template_folder_path=current_service.get_template_folder_path(from_folder),

View File

@@ -100,7 +100,7 @@ def edit_user_permissions(service_id, user_id):
service_id,
folder_permissions=[
f['id'] for f in current_service.all_template_folders
if user_id in f.get('users_with_permission', [])
if user.has_template_folder_permission(f)
],
all_template_folders=current_service.all_template_folders
)

View File

@@ -111,10 +111,10 @@ def start_tour(service_id, template_id):
@user_has_permissions()
def choose_template(service_id, template_type='all', template_folder_id=None):
template_list = TemplateList(current_service, template_type, template_folder_id, current_user.id)
template_list = TemplateList(current_service, template_type, template_folder_id, current_user)
templates_and_folders_form = TemplateAndFoldersSelectionForm(
all_template_folders=current_service.get_user_template_folders(current_user.id),
all_template_folders=current_service.get_user_template_folders(current_user),
template_list=template_list,
template_type=template_type,
allow_adding_letter_template=current_service.has_permission('letter'),
@@ -348,7 +348,7 @@ def choose_template_to_copy(
services_templates_and_folders=TemplateList(
service,
template_folder_id=from_folder,
user_id=current_user.id
user=current_user
),
template_folder_path=service.get_template_folder_path(from_folder),
from_service=service,
@@ -361,7 +361,7 @@ def choose_template_to_copy(
services_templates_and_folders=TemplateLists([
Service(service) for service in
user_api_client.get_services_for_user(current_user)
], user_id=current_user.id),
], user=current_user),
search_form=SearchByNameForm(),
)