Bug 187753: Specify a maximum length for quips (512 characters)
r/a=LpSolit git-svn-id: svn://10.0.0.236/trunk@264148 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
25984acb6b
commit
87cc20fa17
@ -1 +1 @@
|
||||
8347
|
||||
8348
|
||||
@ -161,6 +161,7 @@ use Memoize;
|
||||
MAX_BUG_URL_LENGTH
|
||||
MAX_POSSIBLE_DUPLICATES
|
||||
MAX_ATTACH_FILENAME_LENGTH
|
||||
MAX_QUIP_LENGTH
|
||||
|
||||
PASSWORD_DIGEST_ALGORITHM
|
||||
PASSWORD_SALT_LENGTH
|
||||
@ -556,6 +557,9 @@ use constant MAX_POSSIBLE_DUPLICATES => 25;
|
||||
# necessary schema changes to store longer names.
|
||||
use constant MAX_ATTACH_FILENAME_LENGTH => 255;
|
||||
|
||||
# Maximum length of a quip.
|
||||
use constant MAX_QUIP_LENGTH => 512;
|
||||
|
||||
# This is the name of the algorithm used to hash passwords before storing
|
||||
# them in the database. This can be any string that is valid to pass to
|
||||
# Perl's "Digest" module. Note that if you change this, it won't take
|
||||
|
||||
@ -1484,7 +1484,7 @@ use constant ABSTRACT_SCHEMA => {
|
||||
REFERENCES => {TABLE => 'profiles',
|
||||
COLUMN => 'userid',
|
||||
DELETE => 'SET NULL'}},
|
||||
quip => {TYPE => 'MEDIUMTEXT', NOTNULL => 1},
|
||||
quip => {TYPE => 'varchar(512)', NOTNULL => 1},
|
||||
approved => {TYPE => 'BOOLEAN', NOTNULL => 1,
|
||||
DEFAULT => 'TRUE'},
|
||||
],
|
||||
|
||||
@ -697,6 +697,9 @@ sub update_table_definitions {
|
||||
# 2012-08-02 dkl@mozilla.com - Bug 756953
|
||||
_fix_dependencies_dupes();
|
||||
|
||||
# 2012-08-01 koosha.khajeh@gmail.com - Bug 187753
|
||||
_shorten_long_quips();
|
||||
|
||||
################################################################
|
||||
# New --TABLE-- changes should go *** A B O V E *** this point #
|
||||
################################################################
|
||||
@ -3164,8 +3167,6 @@ sub _change_text_types {
|
||||
{ TYPE => 'TINYTEXT', NOTNULL => 1 });
|
||||
$dbh->bz_alter_column('groups', 'description',
|
||||
{ TYPE => 'MEDIUMTEXT', NOTNULL => 1 });
|
||||
$dbh->bz_alter_column('quips', 'quip',
|
||||
{ TYPE => 'MEDIUMTEXT', NOTNULL => 1 });
|
||||
$dbh->bz_alter_column('namedqueries', 'query',
|
||||
{ TYPE => 'LONGTEXT', NOTNULL => 1 });
|
||||
|
||||
@ -3753,6 +3754,26 @@ sub _fix_dependencies_dupes {
|
||||
}
|
||||
}
|
||||
|
||||
sub _shorten_long_quips {
|
||||
my $dbh = Bugzilla->dbh;
|
||||
my $quips = $dbh->selectall_arrayref("SELECT quipid, quip FROM quips
|
||||
WHERE CHAR_LENGTH(quip) > 512");
|
||||
|
||||
if (@$quips) {
|
||||
print "Shortening quips longer than 512 characters:";
|
||||
|
||||
my $query = $dbh->prepare("UPDATE quips SET quip = ? WHERE quipid = ?");
|
||||
|
||||
foreach my $quip (@$quips) {
|
||||
my ($quipid, $quip_str) = @$quip;
|
||||
$quip_str = substr($quip_str, 0, 509) . "...";
|
||||
print " $quipid";
|
||||
$query->execute($quip_str, $quipid);
|
||||
}
|
||||
}
|
||||
$dbh->bz_alter_column('quips', 'quip', { TYPE => 'varchar(512)', NOTNULL => 1});
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
||||
@ -65,6 +65,10 @@ if ($action eq "add") {
|
||||
|| $user->in_group('bz_quip_moderators') || 0;
|
||||
my $comment = $cgi->param("quip");
|
||||
$comment || ThrowUserError("need_quip");
|
||||
|
||||
ThrowUserError("quip_too_long", { length => length($comment) })
|
||||
if length($comment) > MAX_QUIP_LENGTH;
|
||||
|
||||
trick_taint($comment); # Used in a placeholder below
|
||||
|
||||
$dbh->do("INSERT INTO quips (userid, quip, approved) VALUES (?, ?, ?)",
|
||||
|
||||
@ -1479,6 +1479,12 @@
|
||||
<a href="page.cgi?id=quicksearch.html#fields">listed here</a>.</p>
|
||||
[% END %]
|
||||
|
||||
[% ELSIF error == "quip_too_long" %]
|
||||
[% title = "Quip Too Long" %]
|
||||
You entered a quip with a length of [% length FILTER none %] characters,
|
||||
but the maximum allowed length is [% constants.MAX_QUIP_LENGTH FILTER none %]
|
||||
characters.
|
||||
|
||||
[% ELSIF error == "reassign_to_empty" %]
|
||||
[% title = "Illegal Reassignment" %]
|
||||
To reassign [% terms.abug %], you must provide an address for
|
||||
|
||||
@ -61,7 +61,7 @@
|
||||
<input type="hidden" name="action" value="add">
|
||||
<input type="hidden" name="token"
|
||||
value="[% issue_hash_token(['create-quips']) FILTER html %]">
|
||||
<input size="80" name="quip">
|
||||
<input size="80" name="quip" maxlength="512">
|
||||
<p>
|
||||
<input type="submit" id="add" value="Add This Quip">
|
||||
</p>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user