summaryrefslogtreecommitdiff
path: root/app/services/todo_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/todo_service.rb')
-rw-r--r--app/services/todo_service.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/app/services/todo_service.rb b/app/services/todo_service.rb
index bfd1e55507c..42a8aca17d3 100644
--- a/app/services/todo_service.rb
+++ b/app/services/todo_service.rb
@@ -198,6 +198,23 @@ class TodoService
current_user.update_todos_count_cache
end
+ def resolve_access_request_todos(current_user, member)
+ return if current_user.nil? || member.nil?
+
+ target = member.source
+
+ finder_params = {
+ state: :pending,
+ author_id: member.user_id,
+ action_id: ::Todo::MEMBER_ACCESS_REQUESTED,
+ type: target.class.polymorphic_name,
+ target: target.id
+ }
+
+ todos = TodosFinder.new(current_user, finder_params).execute
+ resolve_todos(todos, current_user)
+ end
+
def restore_todos(todos, current_user)
todos_ids = todos.batch_update(state: :pending)