Patch integration cleanups
This commit is contained in:
parent
2a5fe8b27c
commit
f91d562bb9
@ -1,16 +1,16 @@
|
||||
module Additionals
|
||||
module Patches
|
||||
module AccessControlPatch
|
||||
def self.included(base)
|
||||
base.class_eval do
|
||||
def self.available_project_modules
|
||||
@available_project_modules = available_project_modules_all
|
||||
.reject { |m| Additionals.setting(:disabled_modules).to_a.include?(m.to_s) }
|
||||
end
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
def self.available_project_modules_all
|
||||
@permissions.collect(&:project_module).compact!.uniq
|
||||
end
|
||||
included do
|
||||
def self.available_project_modules
|
||||
@available_project_modules = available_project_modules_all
|
||||
.reject { |m| Additionals.setting(:disabled_modules).to_a.include?(m.to_s) }
|
||||
end
|
||||
|
||||
def self.available_project_modules_all
|
||||
@permissions.collect(&:project_module).compact!.uniq
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,13 +1,13 @@
|
||||
module Additionals
|
||||
module Patches
|
||||
module AccountControllerPatch
|
||||
def self.included(base)
|
||||
base.include InstanceMethods
|
||||
base.class_eval do
|
||||
invisible_captcha(only: [:register],
|
||||
on_timestamp_spam: :timestamp_spam_check,
|
||||
if: -> { Additionals.setting?(:invisible_captcha) })
|
||||
end
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
include InstanceMethods
|
||||
invisible_captcha(only: [:register],
|
||||
on_timestamp_spam: :timestamp_spam_check,
|
||||
if: -> { Additionals.setting?(:invisible_captcha) })
|
||||
end
|
||||
|
||||
module InstanceMethods
|
||||
|
@ -1,11 +1,11 @@
|
||||
module Additionals
|
||||
module Patches
|
||||
module ApplicationControllerPatch
|
||||
def self.included(base)
|
||||
base.include InstanceMethods
|
||||
base.class_eval do
|
||||
before_action :enable_smileys
|
||||
end
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
include InstanceMethods
|
||||
before_action :enable_smileys
|
||||
end
|
||||
|
||||
module InstanceMethods
|
||||
|
@ -1,17 +1,17 @@
|
||||
module Additionals
|
||||
module Patches
|
||||
module FormatterMarkdownPatch
|
||||
def self.included(base)
|
||||
base.class_eval do
|
||||
base.include Additionals::Formatter
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
# Add a postprocess hook to redcarpet's html formatter
|
||||
def postprocess(text)
|
||||
if Additionals.setting?(:legacy_smiley_support)
|
||||
render_inline_smileys(inline_emojify(text))
|
||||
else
|
||||
text
|
||||
end
|
||||
included do
|
||||
include Additionals::Formatter
|
||||
|
||||
# Add a postprocess hook to redcarpet's html formatter
|
||||
def postprocess(text)
|
||||
if Additionals.setting?(:legacy_smiley_support)
|
||||
render_inline_smileys(inline_emojify(text))
|
||||
else
|
||||
text
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,8 +1,10 @@
|
||||
module Additionals
|
||||
module Patches
|
||||
module FormatterTextilePatch
|
||||
def self.included(base)
|
||||
base.include Additionals::Formatter
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
include Additionals::Formatter
|
||||
|
||||
# emojify are always enabled
|
||||
Redmine::WikiFormatting::Textile::Formatter::RULES << :inline_emojify
|
||||
|
@ -1,11 +1,13 @@
|
||||
module Additionals
|
||||
module Patches
|
||||
module FormattingHelperPatch
|
||||
def self.included(base)
|
||||
base.prepend InstancOverwriteMethods
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
prepend InstanceOverwriteMethods
|
||||
end
|
||||
|
||||
module InstancOverwriteMethods
|
||||
module InstanceOverwriteMethods
|
||||
def heads_for_wiki_formatter
|
||||
super
|
||||
return if @additionals_macro_list
|
||||
|
@ -1,28 +1,28 @@
|
||||
module Additionals
|
||||
module Patches
|
||||
module IssuePatch
|
||||
def self.included(base)
|
||||
base.extend ClassMethods
|
||||
base.include InstanceMethods
|
||||
base.class_eval do
|
||||
alias_method :editable_without_additionals?, :editable?
|
||||
alias_method :editable?, :editable_with_additionals?
|
||||
validate :validate_change_on_closed
|
||||
validate :validate_timelog_required
|
||||
validate :validate_current_user_status
|
||||
before_validation :auto_assigned_to
|
||||
before_save :change_status_with_assigned_to_change,
|
||||
:autowatch_involved
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
safe_attributes 'author_id',
|
||||
if: proc { |issue, user|
|
||||
issue.new_record? && user.allowed_to?(:change_new_issue_author, issue.project) ||
|
||||
issue.persisted? && user.allowed_to?(:edit_issue_author, issue.project)
|
||||
}
|
||||
end
|
||||
included do
|
||||
include InstanceMethods
|
||||
|
||||
alias_method :editable_without_additionals?, :editable?
|
||||
alias_method :editable?, :editable_with_additionals?
|
||||
validate :validate_change_on_closed
|
||||
validate :validate_timelog_required
|
||||
validate :validate_current_user_status
|
||||
before_validation :auto_assigned_to
|
||||
before_save :change_status_with_assigned_to_change,
|
||||
:autowatch_involved
|
||||
|
||||
safe_attributes 'author_id',
|
||||
if: proc { |issue, user|
|
||||
issue.new_record? && user.allowed_to?(:change_new_issue_author, issue.project) ||
|
||||
issue.persisted? && user.allowed_to?(:edit_issue_author, issue.project)
|
||||
}
|
||||
end
|
||||
|
||||
module ClassMethods
|
||||
class_methods do
|
||||
def join_issue_status(options = {})
|
||||
sql = "JOIN #{IssueStatus.table_name} ON #{IssueStatus.table_name}.id = #{table_name}.status_id"
|
||||
return sql unless options.key?(:is_closed)
|
||||
|
@ -1,12 +1,13 @@
|
||||
module Additionals
|
||||
module Patches
|
||||
module IssuePriorityPatch
|
||||
def self.included(base)
|
||||
base.include InstanceMethods
|
||||
base.class_eval do
|
||||
alias_method :css_classes_without_additionals, :css_classes
|
||||
alias_method :css_classes, :css_classes_with_additionals
|
||||
end
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
include InstanceMethods
|
||||
|
||||
alias_method :css_classes_without_additionals, :css_classes
|
||||
alias_method :css_classes, :css_classes_with_additionals
|
||||
end
|
||||
|
||||
module InstanceMethods
|
||||
|
@ -1,45 +1,45 @@
|
||||
module Additionals
|
||||
module Patches
|
||||
module PrincipalPatch
|
||||
def self.included(base)
|
||||
base.class_eval do
|
||||
# TODO: find better solution, which not requires overwrite visible
|
||||
# to filter out hide role members
|
||||
scope :visible, lambda { |*args|
|
||||
user = args.first || User.current
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
if user.admin?
|
||||
all
|
||||
included do
|
||||
# TODO: find better solution, which not requires overwrite visible
|
||||
# to filter out hide role members
|
||||
scope :visible, lambda { |*args|
|
||||
user = args.first || User.current
|
||||
|
||||
if user.admin?
|
||||
all
|
||||
else
|
||||
view_all_active = if user.memberships.to_a.any?
|
||||
user.memberships.any? { |m| m.roles.any? { |r| r.users_visibility == 'all' } }
|
||||
else
|
||||
user.builtin_role.users_visibility == 'all'
|
||||
end
|
||||
|
||||
if view_all_active
|
||||
active
|
||||
else
|
||||
view_all_active = if user.memberships.to_a.any?
|
||||
user.memberships.any? { |m| m.roles.any? { |r| r.users_visibility == 'all' } }
|
||||
else
|
||||
user.builtin_role.users_visibility == 'all'
|
||||
end
|
||||
# self and members of visible projects
|
||||
scope = if user.allowed_to?(:show_hidden_roles_in_memberbox, nil, global: true)
|
||||
active.where("#{table_name}.id = ? OR #{table_name}.id IN (SELECT user_id " \
|
||||
"FROM #{Member.table_name} WHERE project_id IN (?))",
|
||||
user.id, user.visible_project_ids)
|
||||
else
|
||||
active.where("#{table_name}.id = ? OR #{table_name}.id IN (SELECT user_id " \
|
||||
"FROM #{Member.table_name} JOIN #{MemberRole.table_name} " \
|
||||
" ON #{Member.table_name}.id = #{MemberRole.table_name}.member_id" \
|
||||
" JOIN #{Role.table_name} " \
|
||||
" ON #{Role.table_name}.id = #{MemberRole.table_name}.role_id" \
|
||||
" WHERE project_id IN (?) AND #{Role.table_name}.hide = ?)",
|
||||
user.id, user.visible_project_ids, false)
|
||||
end
|
||||
|
||||
if view_all_active
|
||||
active
|
||||
else
|
||||
# self and members of visible projects
|
||||
scope = if user.allowed_to?(:show_hidden_roles_in_memberbox, nil, global: true)
|
||||
active.where("#{table_name}.id = ? OR #{table_name}.id IN (SELECT user_id " \
|
||||
"FROM #{Member.table_name} WHERE project_id IN (?))",
|
||||
user.id, user.visible_project_ids)
|
||||
else
|
||||
active.where("#{table_name}.id = ? OR #{table_name}.id IN (SELECT user_id " \
|
||||
"FROM #{Member.table_name} JOIN #{MemberRole.table_name} " \
|
||||
" ON #{Member.table_name}.id = #{MemberRole.table_name}.member_id" \
|
||||
" JOIN #{Role.table_name} " \
|
||||
" ON #{Role.table_name}.id = #{MemberRole.table_name}.role_id" \
|
||||
" WHERE project_id IN (?) AND #{Role.table_name}.hide = ?)",
|
||||
user.id, user.visible_project_ids, false)
|
||||
end
|
||||
|
||||
scope
|
||||
end
|
||||
scope
|
||||
end
|
||||
}
|
||||
end
|
||||
end
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,12 +1,14 @@
|
||||
module Additionals
|
||||
module Patches
|
||||
module ProjectPatch
|
||||
def self.included(base)
|
||||
base.prepend InstancOverwriteMethods
|
||||
base.include InstanceMethods
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
prepend InstanceOverwriteMethods
|
||||
include InstanceMethods
|
||||
end
|
||||
|
||||
module InstancOverwriteMethods
|
||||
module InstanceOverwriteMethods
|
||||
def users_by_role
|
||||
roles_with_users = super
|
||||
roles_with_users.each do |role_with_users|
|
||||
|
@ -1,11 +1,13 @@
|
||||
module Additionals
|
||||
module Patches
|
||||
module ReportsControllerPatch
|
||||
def self.included(base)
|
||||
base.prepend InstancOverwriteMethods
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
prepend InstanceOverwriteMethods
|
||||
end
|
||||
|
||||
module InstancOverwriteMethods
|
||||
module InstanceOverwriteMethods
|
||||
def issue_report_details
|
||||
super
|
||||
return if @rows.nil?
|
||||
|
@ -1,10 +1,10 @@
|
||||
module Additionals
|
||||
module Patches
|
||||
module RolePatch
|
||||
def self.included(base)
|
||||
base.class_eval do
|
||||
safe_attributes 'hide'
|
||||
end
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
safe_attributes 'hide'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,13 +1,14 @@
|
||||
module Additionals
|
||||
module Patches
|
||||
module TimeEntryPatch
|
||||
def self.included(base)
|
||||
base.include InstanceMethods
|
||||
base.class_eval do
|
||||
alias_method :editable_by_without_additionals?, :editable_by?
|
||||
alias_method :editable_by?, :editable_by_with_additionals?
|
||||
validate :validate_issue_allowed
|
||||
end
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
include InstanceMethods
|
||||
|
||||
alias_method :editable_by_without_additionals?, :editable_by?
|
||||
alias_method :editable_by?, :editable_by_with_additionals?
|
||||
validate :validate_issue_allowed
|
||||
end
|
||||
|
||||
module InstanceMethods
|
||||
|
@ -1,10 +1,10 @@
|
||||
module Additionals
|
||||
module Patches
|
||||
module UserPreferencePatch
|
||||
def self.included(base)
|
||||
base.class_eval do
|
||||
safe_attributes 'autowatch_involved_issue'
|
||||
end
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
safe_attributes 'autowatch_involved_issue'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -3,12 +3,13 @@ require_dependency 'wiki_controller'
|
||||
module Additionals
|
||||
module Patches
|
||||
module WikiControllerPatch
|
||||
def self.included(base)
|
||||
base.include InstanceMethods
|
||||
base.class_eval do
|
||||
alias_method :respond_to_without_additionals, :respond_to
|
||||
alias_method :respond_to, :respond_to_with_additionals
|
||||
end
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
include InstanceMethods
|
||||
|
||||
alias_method :respond_to_without_additionals, :respond_to
|
||||
alias_method :respond_to, :respond_to_with_additionals
|
||||
end
|
||||
|
||||
module InstanceMethods
|
||||
|
@ -4,12 +4,13 @@ module Additionals
|
||||
module Patches
|
||||
# Patch wiki to include sidebar
|
||||
module WikiPatch
|
||||
def self.included(base)
|
||||
base.include InstanceMethods
|
||||
base.class_eval do
|
||||
alias_method :sidebar_without_additionals, :sidebar
|
||||
alias_method :sidebar, :sidebar_with_additionals
|
||||
end
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
include InstanceMethods
|
||||
|
||||
alias_method :sidebar_without_additionals, :sidebar
|
||||
alias_method :sidebar, :sidebar_with_additionals
|
||||
end
|
||||
|
||||
module InstanceMethods
|
||||
|
Loading…
x
Reference in New Issue
Block a user