Skip to content

Commit 06d2472

Browse files
committed
moderation: removed resource & refactored service
1 parent 8c8fefa commit 06d2472

File tree

15 files changed

+101
-389
lines changed

15 files changed

+101
-389
lines changed

invenio_requests/config.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
"""Invenio module for generic and customizable requests."""
1010

11-
from invenio_users_resources.entity_resolvers import RoleResolver, UserResolver
11+
from invenio_users_resources.entity_resolvers import GroupResolver, UserResolver
1212

1313
from invenio_requests.services.requests import facets
1414

@@ -27,7 +27,7 @@
2727
]
2828
"""Configuration for registered Request Event Types."""
2929

30-
REQUESTS_ENTITY_RESOLVERS = [UserResolver(), RoleResolver()]
30+
REQUESTS_ENTITY_RESOLVERS = [UserResolver(), GroupResolver()]
3131
"""Registered resolvers for resolving/creating references in request metadata."""
3232

3333
REQUESTS_ROUTES = {
@@ -53,3 +53,6 @@
5353

5454
REQUESTS_TIMELINE_PAGE_SIZE = 15
5555
"""Amount of items per page on the request details timeline"""
56+
57+
REQUESTS_USER_MODERATION_RECEIVER = None
58+
"""Default receiver for user moderation requests."""

invenio_requests/customizations/user_moderation/user_moderation.py

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"""User moderation requests."""
88

99
from invenio_i18n import lazy_gettext as _
10-
from invenio_users_resources.permissions import moderation_action
10+
from invenio_users_resources.proxies import current_users_service
1111

1212
from invenio_requests.customizations import RequestType, actions
1313

@@ -17,26 +17,20 @@ class BlockUserAction(actions.DeclineAction):
1717

1818
def execute(self, identity, uow):
1919
"""Executes block action."""
20-
# TODO add specific user block actions
20+
user = self.request.topic.resolve()
21+
current_users_service.block(identity, user.id, uow=uow)
2122
super().execute(identity, uow)
2223

23-
# Allow APPROVED -> BLOCKED transition
24-
status_from = ["submitted", "accepted"]
25-
status_to = "declined"
26-
2724

2825
class ApproveUserAction(actions.AcceptAction):
2926
"""Represents an accept action used to aprove an user."""
3027

3128
def execute(self, identity, uow):
3229
"""Executes aprove action."""
33-
# TODO add specific user block actions
30+
user = self.request.topic.resolve()
31+
current_users_service.approve(identity, user.id, uow=uow)
3432
super().execute(identity, uow)
3533

36-
# Allow BLOCKED -> APPROVED transition
37-
status_from = ["submitted", "declined"]
38-
status_to = "accepted"
39-
4034

4135
class UserModeration(RequestType):
4236
"""Request to moderate an user."""
@@ -46,12 +40,10 @@ class UserModeration(RequestType):
4640

4741
creator_can_be_none = False
4842
topic_can_be_none = False
49-
allowed_creator_ref_types = ["role"]
50-
allowed_receiver_ref_types = ["role"]
43+
allowed_creator_ref_types = ["group"]
44+
allowed_receiver_ref_types = ["group"]
5145
allowed_topic_ref_types = ["user"]
5246

53-
needs_context = {"roles": [moderation_action.value]}
54-
5547
available_actions = {
5648
"delete": actions.DeleteAction,
5749
"submit": actions.SubmitAction,

invenio_requests/ext.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
RequestCommentsResourceConfig,
1919
RequestsResource,
2020
RequestsResourceConfig,
21-
UserModerationResource,
22-
UserModerationResourceConfig,
2321
)
2422
from .services import (
2523
RequestEventsService,
@@ -92,11 +90,6 @@ def init_resources(self):
9290
config=RequestCommentsResourceConfig,
9391
)
9492

95-
self.user_moderation_requests_resource = UserModerationResource(
96-
service=self.user_moderation_requests_service,
97-
config=UserModerationResourceConfig,
98-
)
99-
10093
def init_registry(self, app):
10194
"""Initialize the registry for Requests per type."""
10295
self.request_type_registry = TypeRegistry(

invenio_requests/resources/__init__.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,10 @@
1212

1313
from .events import RequestCommentsResource, RequestCommentsResourceConfig
1414
from .requests import RequestsResource, RequestsResourceConfig
15-
from .user_moderation import UserModerationResource, UserModerationResourceConfig
1615

1716
__all__ = (
1817
"RequestsResource",
1918
"RequestsResourceConfig",
2019
"RequestCommentsResource",
2120
"RequestCommentsResourceConfig",
22-
"UserModerationResource",
23-
"UserModerationResourceConfig",
2421
)

invenio_requests/resources/user_moderation/__init__.py

Lines changed: 0 additions & 15 deletions
This file was deleted.

invenio_requests/resources/user_moderation/config.py

Lines changed: 0 additions & 64 deletions
This file was deleted.

invenio_requests/resources/user_moderation/resource.py

Lines changed: 0 additions & 81 deletions
This file was deleted.

invenio_requests/services/permissions.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,14 @@
1010

1111
"""Request permissions."""
1212

13-
from invenio_records_permissions import BasePermissionPolicy, RecordPermissionPolicy
13+
from invenio_records_permissions import RecordPermissionPolicy
1414
from invenio_records_permissions.generators import (
1515
AnyUser,
1616
AuthenticatedUser,
1717
Disable,
1818
SystemProcess,
1919
SystemProcessWithoutSuperUser,
2020
)
21-
from invenio_users_resources.services.generators import UserModeration
2221

2322
from .generators import Commenter, Creator, Receiver, Status
2423

0 commit comments

Comments
 (0)