Skip to content

Commit

Permalink
ui: Require records community
Browse files Browse the repository at this point in the history
  • Loading branch information
Samk13 committed Oct 6, 2023
1 parent ae6683f commit e8767b5
Showing 1 changed file with 26 additions and 17 deletions.
43 changes: 26 additions & 17 deletions invenio_app_rdm/records_ui/views/deposits.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# Copyright (C) 2019-2021 CERN.
# Copyright (C) 2019-2021 Northwestern University.
# Copyright (C) 2021 TU Wien.
# Copyright (C) 2022 KTH Royal Institute of Technology
# Copyright (C) 2022-2023 KTH Royal Institute of Technology.
# Copyright (C) 2023 Graz University of Technology.
#
# Invenio App RDM is free software; you can redistribute it and/or modify it
Expand Down Expand Up @@ -368,20 +368,25 @@ def new_record():
@pass_draft_community
def deposit_create(community=None):
"""Create a new deposit."""
permissions = get_record_permissions(
[
"manage_files",
"delete_draft",
"manage_record_access",
]
)
# Can't check "publish" permission as draft is not a record with an id yet.
permissions["can_publish_with_community_only"] = current_app.config.get(
"RDM_RECORD_ALWAYS_IN_COMMUNITY", False
)
return render_template(
current_app.config["APP_RDM_DEPOSIT_FORM_TEMPLATE"],
forms_config=get_form_config(createUrl="/api/records", quota=get_quota()),
searchbar_config=dict(searchUrl=get_search_url()),
record=new_record(),
files=dict(default_preview=None, entries=[], links={}),
preselectedCommunity=community,
permissions=get_record_permissions(
[
"manage_files",
"delete_draft",
"manage_record_access",
]
),
permissions=permissions,
)


Expand All @@ -393,7 +398,18 @@ def deposit_edit(pid_value, draft=None, draft_files=None):
files_dict = None if draft_files is None else draft_files.to_dict()
ui_serializer = UIJSONSerializer()
record = ui_serializer.dump_obj(draft.to_dict())

permissions = draft.has_permissions_to(
[
"new_version",
"delete_draft",
"manage_files",
"manage_record_access",
"publish",
]
)
permissions["can_publish_always_in_community"] = current_app.config.get(
"RDM_RECORD_ALWAYS_IN_COMMUNITY", False
)
return render_template(
current_app.config["APP_RDM_DEPOSIT_FORM_TEMPLATE"],
forms_config=get_form_config(
Expand All @@ -404,12 +420,5 @@ def deposit_edit(pid_value, draft=None, draft_files=None):
record=record,
files=files_dict,
searchbar_config=dict(searchUrl=get_search_url()),
permissions=draft.has_permissions_to(
[
"new_version",
"delete_draft",
"manage_files",
"manage_record_access",
]
),
permissions=permissions,
)

0 comments on commit e8767b5

Please sign in to comment.