| @@ -190,6 +190,14 @@ class Project < ApplicationRecord | |||||
| CacheAsyncSetJob.perform_later("platform_statistic_service", {project_count: -1, project_language_count_key: self.project_language&.name, project_language_count: -1}) | CacheAsyncSetJob.perform_later("platform_statistic_service", {project_count: -1, project_language_count_key: self.project_language&.name, project_language_count: -1}) | ||||
| end | end | ||||
| def is_full_public | |||||
| owner = self.owner | |||||
| if owner.is_a?(Organization) | |||||
| return self.is_public && owner&.visibility == "common" | |||||
| else | |||||
| return self.is_public | |||||
| end | |||||
| end | |||||
| def reset_unmember_followed | def reset_unmember_followed | ||||
| if changes[:is_public].present? && changes[:is_public] == [true, false] | if changes[:is_public].present? && changes[:is_public] == [true, false] | ||||
| @@ -86,6 +86,8 @@ class Cache::V2::ProjectCommonService < ApplicationService | |||||
| reset_project_common | reset_project_common | ||||
| return | return | ||||
| end | end | ||||
| load_project | |||||
| return unless @project.is_full_public | |||||
| if @owner_id.present? | if @owner_id.present? | ||||
| if $redis_cache.hget(project_common_key, owner_id_key).nil? | if $redis_cache.hget(project_common_key, owner_id_key).nil? | ||||
| reset_project_owner_id | reset_project_owner_id | ||||
| @@ -224,6 +226,7 @@ class Cache::V2::ProjectCommonService < ApplicationService | |||||
| def reset_project_common | def reset_project_common | ||||
| load_project | load_project | ||||
| return unless @project.is_full_public | |||||
| $redis_cache.del(project_common_key) | $redis_cache.del(project_common_key) | ||||
| reset_project_owner_id | reset_project_owner_id | ||||
| reset_project_name | reset_project_name | ||||
| @@ -7,6 +7,7 @@ json.identifier project_common["identifier"] | |||||
| json.description project_common["description"] | json.description project_common["description"] | ||||
| json.owner do | json.owner do | ||||
| json.id project_common["owner_id"] | json.id project_common["owner_id"] | ||||
| json type owner_common["type"] | |||||
| json.name owner_common["name"] | json.name owner_common["name"] | ||||
| json.login owner_common["login"] | json.login owner_common["login"] | ||||
| json.avatar_url owner_common["avatar_url"] | json.avatar_url owner_common["avatar_url"] | ||||