Skip to content
Snippets Groups Projects
Commit 8e090a99 authored by Marcela Ribeiro de Oliveira's avatar Marcela Ribeiro de Oliveira
Browse files

Merge branch 'master' of gitlab.c3sl.ufpr.br:portalmec/portalmec into stable

parents f2dcb31c b5493c32
No related branches found
No related tags found
No related merge requests found
......@@ -33,24 +33,22 @@ class V1::FeedController < ApplicationController
private
def activities_followed
query = ""
query = "privacy = 'public' and ("
values = [""]
# builds a query string to find all relevant activities
current_user.watching.each do |watching|
if !watching.respond_to?(:state) || watching.state == "published"
# Activities that are made by, owned by, or change the object you follow should be found
query += " (trackable_type = ? and trackable_id = ?) or (owner_type = ? and owner_id = ?) or (recipient_type = ? and recipient_id = ?) or"
values << watching.class.to_s
values << watching.id
values << watching.class.to_s
values << watching.id
if !watching.respond_to?(:state) || watching.state == "published"
# Activities that are made by, owned by, or change the object you follow should be found
query += " (trackable_type = ? and trackable_id = ?) or (owner_type = ? and owner_id = ?) or (recipient_type = ? and recipient_id = ?) or"
3.times do
values << watching.class.to_s
values << watching.id
end
end
end
values[0] = query[0..-3] # remove trailing "or" on the query
values[0] = query[0..-3]+")" # remove trailing "or" on the query
return PublicActivity::Activity.where(key: activities_filter).where(values).order(created_at: :desc)
end
......
......@@ -69,6 +69,7 @@ module Trackable
end
def activity_privacy
proc { |_controller, model| model.try(:privacy) || 'public' }
proc { |_controller, model| model.try(:privacy) || model.try(:recipient).try(:privacy) || 'public' }
end
end
......@@ -179,4 +179,9 @@ class LearningObject < ApplicationRecord
def ignore_changes
super + %w(score views_count downloads_count likes_count shares_count attachment_id)
end
def privacy
return "public" if self.published?
return "private"
end
end
......@@ -31,7 +31,7 @@ class ActivityPolicy < ApplicationPolicy
if user_can_edit?
scope.includes(:owner,:recipient).order('created_at DESC').all
else
scope.includes(:owner,:recipient).where("privacy = 'public'").where(key: activities_filter).order('created_at DESC').all
scope.includes(:owner,:recipient).where(privacy: 'public').where(key: activities_filter).order('created_at DESC').all
end
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment