Commit 3214ad5d authored by 2458773093's avatar 2458773093

regeneration and database feed generation updates for group posts in feeds

parent 1f0f9641
...@@ -20,6 +20,11 @@ class Api::V1::Groups::AccountsController < Api::BaseController ...@@ -20,6 +20,11 @@ class Api::V1::Groups::AccountsController < Api::BaseController
authorize @group, :join? authorize @group, :join?
@group.accounts << current_account @group.accounts << current_account
if current_user.allows_group_in_home_feed?
current_user.force_regeneration!
end
render json: @group, serializer: REST::GroupRelationshipSerializer, relationships: relationships render json: @group, serializer: REST::GroupRelationshipSerializer, relationships: relationships
end end
...@@ -34,6 +39,11 @@ class Api::V1::Groups::AccountsController < Api::BaseController ...@@ -34,6 +39,11 @@ class Api::V1::Groups::AccountsController < Api::BaseController
authorize @group, :leave? authorize @group, :leave?
GroupAccount.where(group: @group, account_id: current_account.id).destroy_all GroupAccount.where(group: @group, account_id: current_account.id).destroy_all
if current_user.allows_group_in_home_feed?
current_user.force_regeneration!
end
render json: @group, serializer: REST::GroupRelationshipSerializer, relationships: relationships render json: @group, serializer: REST::GroupRelationshipSerializer, relationships: relationships
end end
......
...@@ -9,6 +9,7 @@ class Settings::PreferencesController < Settings::BaseController ...@@ -9,6 +9,7 @@ class Settings::PreferencesController < Settings::BaseController
def update def update
user_settings.update(user_settings_params.to_h) user_settings.update(user_settings_params.to_h)
current_user.force_regeneration!
if current_user.update(user_params) if current_user.update(user_params)
I18n.locale = current_user.locale I18n.locale = current_user.locale
......
...@@ -283,7 +283,13 @@ class Status < ApplicationRecord ...@@ -283,7 +283,13 @@ class Status < ApplicationRecord
end end
def as_home_timeline(account) def as_home_timeline(account)
where(account: [account] + account.following).or(where(group: account.groups)).where(visibility: [:public, :unlisted, :private]) query = where(account: [account] + account.following)
if account.user.allows_group_in_home_feed?
query = query.or(where(group: account.groups))
end
query.where(visibility: [:public, :unlisted, :private])
end end
def as_group_timeline(group) def as_group_timeline(group)
......
...@@ -213,6 +213,10 @@ class User < ApplicationRecord ...@@ -213,6 +213,10 @@ class User < ApplicationRecord
@shows_application ||= settings.show_application @shows_application ||= settings.show_application
end end
def allows_group_in_home_feed?
settings.group_in_home_feed
end
def token_for_app(a) def token_for_app(a)
return nil if a.nil? || a.owner != self return nil if a.nil? || a.owner != self
Doorkeeper::AccessToken Doorkeeper::AccessToken
...@@ -270,6 +274,10 @@ class User < ApplicationRecord ...@@ -270,6 +274,10 @@ class User < ApplicationRecord
setting_display_media == 'hide_all' setting_display_media == 'hide_all'
end end
def force_regeneration!
Redis.current.set("account:#{account_id}:regeneration", true)
end
protected protected
def send_devise_notification(notification, *args) def send_devise_notification(notification, *args)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment