mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-07-16 23:18:56 +08:00
Update setting api
This commit is contained in:
@@ -1,31 +1,57 @@
|
||||
class SettingsController < ApplicationController
|
||||
def show
|
||||
@old_projects_url = nil
|
||||
@old_projects_url = "https://www.trustie.net/users/#{current_user.try(:login)}/projects" if User.current.logged?
|
||||
get_add_menu
|
||||
get_common_menu
|
||||
get_personal_menu
|
||||
end
|
||||
|
||||
@add = Site.add.select(:id, :name, :url, :key)
|
||||
@personal =
|
||||
private
|
||||
def get_add_menu
|
||||
@add = []
|
||||
Site.add.select(:id, :name, :url, :key).to_a.map(&:serializable_hash).each do |site|
|
||||
hash = {}
|
||||
site.each {|k, v|
|
||||
hash.merge!("#{k}": set_site_url(k, v))
|
||||
}
|
||||
@add << hash
|
||||
end
|
||||
end
|
||||
|
||||
def get_common_menu
|
||||
@common = []
|
||||
Site.common.select(:id, :name, :url, :key).to_a.map(&:serializable_hash).each do |site|
|
||||
next if site["url"].to_s.include?("current_user") && !User.current.logged?
|
||||
hash = {}
|
||||
site.each {|k, v|
|
||||
hash.merge!("#{k}": set_site_url(k, v))
|
||||
}
|
||||
@common << hash
|
||||
end
|
||||
end
|
||||
|
||||
def get_personal_menu
|
||||
@personal = []
|
||||
if User.current.logged?
|
||||
arr =[]
|
||||
Site.personal.select(:id, :name, :url, :key).to_a.map(&:serializable_hash).each do |site|
|
||||
hash = {}
|
||||
site.each {|k, v|
|
||||
hash.merge!("#{k}": v.to_s.include?("current_user") ? v.split('current_user').join(current_user&.login) : v)
|
||||
hash.merge!("#{k}": set_site_url(k, v))
|
||||
}
|
||||
arr << hash
|
||||
@personal << hash
|
||||
end
|
||||
else
|
||||
[]
|
||||
end
|
||||
|
||||
@common = []
|
||||
Site.common.select(:id, :name, :url, :key).to_a.map(&:serializable_hash).each do |site|
|
||||
next if site["url"].to_s.include?("current_user") && !User.current.logged?
|
||||
hash = {}
|
||||
site.each {|k, v|
|
||||
hash.merge!("#{k}": v.to_s.include?("current_user") ? v.split('current_user').join(current_user&.login) : v)
|
||||
}
|
||||
@common << hash
|
||||
end
|
||||
end
|
||||
|
||||
def set_site_url(key, value)
|
||||
value =
|
||||
if value.to_s.include?("current_user")
|
||||
split_arr = value.split('current_user')
|
||||
split_arr.length > 1 ? split_arr.join(current_user&.login) : (split_arr << current_user&.login).join('')
|
||||
else
|
||||
value
|
||||
end
|
||||
|
||||
key.to_s === "url" && !value.to_s.start_with?("http") ? [request.protocol, request.host_with_port, value].join('') : value
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user