mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-17 02:05:58 +08:00
Merge branch 'standalone_develop' into pm_project_develop
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
class Api::V1::Users::HomeTopSettings::CreateService < ApplicationService
|
||||
|
||||
include ActiveModel::Model
|
||||
|
||||
attr_reader :user, :top_type, :top_id
|
||||
attr_accessor :home_top_setting, :home_top
|
||||
|
||||
validates :user, :top_type, :top_id, presence: true
|
||||
validates :top_type, inclusion: {in: %w(Organization Project), message: '请输入正确的TopType'}
|
||||
|
||||
def initialize(user, params)
|
||||
@user = user
|
||||
@top_type = params[:top_type]
|
||||
@top_id = params[:top_id]
|
||||
end
|
||||
|
||||
def call
|
||||
raise Error, errors.full_messages.join(",") unless valid?
|
||||
raise Error, "置顶对象不存在!" unless find_home_top
|
||||
raise Error, "置顶对象已置顶!" if check_home_top_setting
|
||||
|
||||
begin
|
||||
@home_top_setting = HomeTopSetting.new(user:user, top: @home_top)
|
||||
@home_top_setting.save!
|
||||
|
||||
return @home_top_setting.valid? ? @home_top_setting : nil
|
||||
rescue
|
||||
raise Error, "服务器错误,请联系系统管理员!"
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
def find_home_top
|
||||
@home_top = @top_type.constantize.find_by_id(@top_id).presence
|
||||
end
|
||||
|
||||
def check_home_top_setting
|
||||
HomeTopSetting.exists?(user: @user, top: @home_top)
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,40 @@
|
||||
class Api::V1::Users::HomeTopSettings::DeleteService < ApplicationService
|
||||
|
||||
include ActiveModel::Model
|
||||
|
||||
attr_reader :user, :top_type, :top_id
|
||||
attr_accessor :home_top_setting, :home_top
|
||||
|
||||
validates :user, :top_type, :top_id, presence: true
|
||||
validates :top_type, inclusion: {in: %w(Organization Project), message: '请输入正确的TopType'}
|
||||
|
||||
def initialize(user, params)
|
||||
@user = user
|
||||
@top_type = params[:top_type]
|
||||
@top_id = params[:top_id]
|
||||
end
|
||||
|
||||
def call
|
||||
raise Error, errors.full_messages.join(",") unless valid?
|
||||
raise Error, "置顶对象不存在!" unless find_home_top
|
||||
raise Error, "置顶对象未置顶!" unless check_home_top_setting
|
||||
|
||||
begin
|
||||
@home_top_setting = HomeTopSetting.find_by(user:user, top: @home_top)
|
||||
@home_top_setting.destroy!
|
||||
|
||||
return true
|
||||
rescue
|
||||
raise Error, "服务器错误,请联系系统管理员!"
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
def find_home_top
|
||||
@home_top = @top_type.constantize.find_by_id(@top_id).presence
|
||||
end
|
||||
|
||||
def check_home_top_setting
|
||||
HomeTopSetting.exists?(user: @user, top: @home_top)
|
||||
end
|
||||
end
|
||||
@@ -34,7 +34,7 @@ class Api::V1::Users::Projects::ListService < ApplicationService
|
||||
|
||||
private
|
||||
def project_query_data
|
||||
if current_user.admin?
|
||||
if current_user.admin? || @observe_user.id == current_user.id
|
||||
projects = Project
|
||||
else
|
||||
projects = Project.visible
|
||||
|
||||
Reference in New Issue
Block a user