DEV: Add per-user feature flag for the new notifications menu (#17490)

Co-authored-by: OsamaSayegh <asooomaasoooma90@gmail.com>
This commit is contained in:
Alan Guo Xiang Tan 2022-07-14 14:30:46 +08:00 committed by GitHub
parent 92e1e43104
commit 845642ac46
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 1 deletions

View File

@ -1564,6 +1564,26 @@ class User < ActiveRecord::Base
user_status && !user_status.expired?
end
REDESIGN_USER_MENU_REDIS_KEY_PREFIX = "redesigned_user_menu_for_user_"
def self.redesigned_user_menu_enabled_user_ids
Discourse.redis.scan_each(match: "#{REDESIGN_USER_MENU_REDIS_KEY_PREFIX}*").map do |key|
key.sub(REDESIGN_USER_MENU_REDIS_KEY_PREFIX, "").to_i
end
end
def redesigned_user_menu_enabled?
Discourse.redis.get("#{REDESIGN_USER_MENU_REDIS_KEY_PREFIX}#{self.id}") == "1"
end
def enable_redesigned_user_menu
Discourse.redis.setex("#{REDESIGN_USER_MENU_REDIS_KEY_PREFIX}#{self.id}", 6.months, "1")
end
def disable_redesigned_user_menu
Discourse.redis.del("#{REDESIGN_USER_MENU_REDIS_KEY_PREFIX}#{self.id}")
end
protected
def badge_grant

View File

@ -74,7 +74,8 @@ class CurrentUserSerializer < BasicUserSerializer
:experimental_sidebar_enabled,
:status,
:sidebar_category_ids,
:sidebar_tag_names
:sidebar_tag_names,
:redesigned_user_menu_enabled
delegate :user_stat, to: :object, private: true
delegate :any_posts, :draft_count, :pending_posts_count, :read_faq?, to: :user_stat
@ -338,4 +339,11 @@ class CurrentUserSerializer < BasicUserSerializer
def status
UserStatusSerializer.new(object.user_status, root: false)
end
def redesigned_user_menu_enabled
if defined?(@redesigned_user_menu_enabled)
return @redesigned_user_menu_enabled
end
@redesigned_user_menu_enabled = object.redesigned_user_menu_enabled?
end
end