Patch #37565 ยป patch.diff
app/models/issue_custom_field.rb | ||
---|---|---|
40 | 40 |
" OR #{Issue.table_name}.project_id IN (SELECT project_id FROM #{table_name_prefix}custom_fields_projects#{table_name_suffix} WHERE custom_field_id = #{id_column})" |
41 | 41 | |
42 | 42 |
"((#{sql}) AND (#{tracker_condition}) AND (#{project_condition}) AND (#{Issue.visible_condition(user)}))" |
43 |
"((#{sql}) AND (#{tracker_condition}) AND (#{project_condition}) AND (#{Issue.visible_condition(user, {skip_pre_condition: true})}))" |
|
43 | 44 |
end |
44 | 45 | |
45 | 46 |
def validate_custom_field |
app/models/project.rb | ||
---|---|---|
178 | 178 |
# * :member => true limit the condition to the user projects |
179 | 179 |
def self.allowed_to_condition(user, permission, options={}) |
180 | 180 |
perm = Redmine::AccessControl.permission(permission) |
181 |
base_statement = |
|
182 |
if perm && perm.read? |
|
181 |
if options[:skip_pre_condition] |
|
182 |
base_statement = "1=1" |
|
183 |
else |
|
184 |
base_statement = if perm && perm.read? |
|
183 | 185 |
"#{Project.table_name}.status <> #{Project::STATUS_ARCHIVED}" |
184 | 186 |
else |
185 | 187 |
"#{Project.table_name}.status = #{Project::STATUS_ACTIVE}" |
186 | 188 |
end |
187 |
if !options[:skip_pre_condition] && perm && perm.project_module |
|
188 |
# If the permission belongs to a project module, make sure the module is enabled |
|
189 |
base_statement += |
|
190 |
" AND EXISTS (SELECT 1 AS one FROM #{EnabledModule.table_name} em" \ |
|
191 |
" WHERE em.project_id = #{Project.table_name}.id" \ |
|
192 |
" AND em.name='#{perm.project_module}')" |
|
189 |
if perm && perm.project_module |
|
190 |
# If the permission belongs to a project module, make sure the module is enabled |
|
191 |
base_statement += |
|
192 |
" AND EXISTS (SELECT 1 AS one FROM #{EnabledModule.table_name} em" \ |
|
193 |
" WHERE em.project_id = #{Project.table_name}.id" \ |
|
194 |
" AND em.name='#{perm.project_module}')" |
|
195 |
end |
|
193 | 196 |
end |
194 | 197 |
if project = options[:project] |
195 | 198 |
project_statement = project.project_condition(options[:with_subprojects]) |