Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
bugzilla
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
bugzilla
Commits
5f2a455c
Commit
5f2a455c
authored
May 22, 2010
by
Max Kanat-Alexander
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug 556397: Move the setting of single-bug fields from process_bug.cgi
into Bugzilla::Bug::set_all r=dkl, a=mkanat
parent
0481e9aa
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
32 additions
and
29 deletions
+32
-29
Bug.pm
Bugzilla/Bug.pm
+9
-1
process_bug.cgi
process_bug.cgi
+23
-28
No files found.
Bugzilla/Bug.pm
View file @
5f2a455c
...
...
@@ -1968,7 +1968,6 @@ sub set_all {
$self
->
set_custom_field
(
$field
,
$params
->
{
$fname
});
}
}
}
sub
set_alias
{
$_
[
0
]
->
set
(
'alias'
,
$_
[
1
]);
}
...
...
@@ -1988,6 +1987,15 @@ sub set_cclist_accessible { $_[0]->set('cclist_accessible', $_[1]); }
sub
set_comment_is_private
{
my
(
$self
,
$comment_id
,
$isprivate
)
=
@_
;
return
unless
Bugzilla
->
user
->
is_insider
;
# We also allow people to pass in a hash of comment ids to update.
if
(
ref
$comment_id
)
{
while
(
my
(
$id
,
$is
)
=
each
%
$comment_id
)
{
$self
->
set_comment_is_private
(
$id
,
$is
);
}
return
;
}
my
(
$comment
)
=
grep
(
$comment_id
==
$_
->
id
,
@
{
$self
->
comments
});
ThrowUserError
(
'comment_invalid_isprivate'
,
{
id
=>
$comment_id
})
if
!
$comment
;
...
...
process_bug.cgi
View file @
5f2a455c
...
...
@@ -263,7 +263,8 @@ my @set_fields = qw(op_sys rep_platform priority bug_severity
bug_file_loc status_whiteboard short_desc
deadline remaining_time estimated_time
work_time set_default_assignee set_default_qa_contact
keywords keywordaction)
;
keywords keywordaction
cclist_accessible reporter_accessible)
;
push
(
@set_fields
,
'assigned_to'
)
if
!
$cgi
->
param
(
'set_default_assignee'
);
push
(
@set_fields
,
'qa_contact'
)
if
!
$cgi
->
param
(
'set_default_qa_contact'
);
my
%
field_translation
=
(
...
...
@@ -278,7 +279,7 @@ my %field_translation = (
my
%
set_all_fields
;
foreach
my
$field_name
(
@set_fields
)
{
if
(
should_set
(
$field_name
))
{
if
(
should_set
(
$field_name
,
1
))
{
my
$param_name
=
$field_translation
{
$field_name
}
||
$field_name
;
$set_all_fields
{
$param_name
}
=
$cgi
->
param
(
$field_name
);
}
...
...
@@ -308,6 +309,24 @@ foreach my $dep_field (qw(dependson blocked)) {
}
}
}
# Fields that can only be set on one bug at a time.
if
(
defined
$cgi
->
param
(
'id'
))
{
# Since aliases are unique (like bug numbers), they can only be changed
# for one bug at a time.
if
(
Bugzilla
->
params
->
{
"usebugaliases"
}
&&
defined
$cgi
->
param
(
'alias'
))
{
$set_all_fields
{
alias
}
=
$cgi
->
param
(
'alias'
);
}
}
my
%
is_private
;
foreach
my
$field
(
grep
(
/^defined_isprivate/
,
$cgi
->
param
()))
{
$field
=~
/(\d+)$/
;
my
$comment_id
=
$1
;
$is_private
{
$comment_id
}
=
$cgi
->
param
(
"isprivate_$comment_id"
);
}
$set_all_fields
{
comment_is_private
}
=
\%
is_private
;
my
%
groups
=
(
add
=>
[]
,
remove
=>
[]
);
my
%
checked_bit
;
# Used to avoid adding groups twice (defined_ + actual bit-)
foreach
my
$param_name
(
grep
(
/bit-\d+$/
,
$cgi
->
param
()))
{
...
...
@@ -342,37 +361,13 @@ foreach my $b (@bug_objects) {
$b
->
set_all
(
\%
set_all_fields
);
}
# Certain changes can only happen on individual bugs, never on mass-changes.
if
(
defined
$cgi
->
param
(
'id'
))
{
# Flags should be set AFTER the bug has been moved into another
# product/component.
# product/component. The structure of flags code doesn't currently
# allow them to be set using set_all.
my
(
$flags
,
$new_flags
)
=
Bugzilla::
Flag
->
extract_flags_from_cgi
(
$first_bug
,
undef
,
$vars
);
$first_bug
->
set_flags
(
$flags
,
$new_flags
);
# Since aliases are unique (like bug numbers), they can only be changed
# for one bug at a time.
if
(
Bugzilla
->
params
->
{
"usebugaliases"
}
&&
defined
$cgi
->
param
(
'alias'
))
{
$first_bug
->
set_alias
(
$cgi
->
param
(
'alias'
));
}
# reporter_accessible and cclist_accessible--these are only set if
# the user can change them and they appear on the page.
if
(
should_set
(
'cclist_accessible'
,
1
))
{
$first_bug
->
set_cclist_accessible
(
$cgi
->
param
(
'cclist_accessible'
))
}
if
(
should_set
(
'reporter_accessible'
,
1
))
{
$first_bug
->
set_reporter_accessible
(
$cgi
->
param
(
'reporter_accessible'
))
}
# You can only mark/unmark comments as private on single bugs. If
# you're not in the insider group, this code won't do anything.
foreach
my
$field
(
grep
(
/^defined_isprivate/
,
$cgi
->
param
()))
{
$field
=~
/(\d+)$/
;
my
$comment_id
=
$1
;
$first_bug
->
set_comment_is_private
(
$comment_id
,
$cgi
->
param
(
"isprivate_$comment_id"
));
}
}
# We need to check the addresses involved in a CC change before we touch
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment