mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-01-07 11:56:51 +00:00
Some more minor corrections to get it to run as well as compile... (removes some XXX comments and adds some error checking)
This commit is contained in:
parent
5dd8af9c83
commit
02d609eb82
@ -48,8 +48,12 @@ sub getUserByUsername {
|
||||
my($app, $username) = @_;
|
||||
# decent databases can do this in one go. Those that can't can do
|
||||
# it in a generic two-step process:
|
||||
return $self->getUserByID($app, $self->getUserIDByUsername($app, $username));
|
||||
# XXX no error checking! if getUserID... return undef, return ()!
|
||||
my $userID = $self->getUserIDByUsername($app, $username);
|
||||
if (defined($userID)) {
|
||||
return $self->getUserByID($app, $userID);
|
||||
} else {
|
||||
return ();
|
||||
}
|
||||
# return the same as getUserByID()
|
||||
}
|
||||
|
||||
@ -65,8 +69,12 @@ sub getUserByContactDetails {
|
||||
my($app, $contactName, $address) = @_;
|
||||
# decent databases can do this in one go. Those that can't can do
|
||||
# it in a generic two-step process:
|
||||
return $self->getUserByID($app, $self->getUserIDByContactDetails($app, $contactName, $address));
|
||||
# XXX no error checking! if getUserID... return undef, return ()!
|
||||
my $userID = $self->getUserIDByContactDetails($app, $contactName, $address);
|
||||
if (defined($userID)) {
|
||||
return $self->getUserByID($app, $userID);
|
||||
} else {
|
||||
return ();
|
||||
}
|
||||
# return the same as getUserByID()
|
||||
}
|
||||
|
||||
|
@ -45,25 +45,33 @@ sub getUserIDByUsername {
|
||||
# example, for the field 'contact.icq', the type data field might
|
||||
# contain the string 'ICQ:' and the user field might be '55378571'
|
||||
# making the username 'ICQ:55378571'.
|
||||
return $self->database($app)->execute('SELECT userData.userID
|
||||
FROM userData, userDataTypes
|
||||
WHERE userData.fieldID = userDataTypes.fieldID
|
||||
AND userDataTypes.category = \'contact\'
|
||||
AND CONCAT(userDataTypes.data, userData.data) = ?', $username)->row->[0];
|
||||
# XXX no error checking!
|
||||
my $row = $self->database($app)->execute('SELECT userData.userID
|
||||
FROM userData, userDataTypes
|
||||
WHERE userData.fieldID = userDataTypes.fieldID
|
||||
AND userDataTypes.category = \'contact\'
|
||||
AND CONCAT(userDataTypes.data, userData.data) = ?', $username)->row;
|
||||
if (defined($row)) {
|
||||
return $row->[0];
|
||||
} else {
|
||||
return undef;
|
||||
}
|
||||
# return userID or undef
|
||||
}
|
||||
|
||||
sub getUserIDByContactDetails {
|
||||
my $self = shift;
|
||||
my($app, $contactName, $address) = @_;
|
||||
return $self->database($app)->execute('SELECT userData.userID
|
||||
FROM userData, userDataTypes
|
||||
WHERE userData.fieldID = userDataTypes.fieldID
|
||||
AND userDataTypes.category = \'contact\'
|
||||
AND userDataTypes.name = ?
|
||||
AND userData.data = ?', $contactName, $address)->row->[0];
|
||||
# XXX no error checking!
|
||||
my $row = $self->database($app)->execute('SELECT userData.userID
|
||||
FROM userData, userDataTypes
|
||||
WHERE userData.fieldID = userDataTypes.fieldID
|
||||
AND userDataTypes.category = \'contact\'
|
||||
AND userDataTypes.name = ?
|
||||
AND userData.data = ?', $contactName, $address)->row;
|
||||
if (defined($row)) {
|
||||
return $row->[0];
|
||||
} else {
|
||||
return undef;
|
||||
}
|
||||
# return userID or undef
|
||||
}
|
||||
|
||||
@ -218,8 +226,13 @@ sub getGroups {
|
||||
sub getGroupName {
|
||||
my $self = shift;
|
||||
my($app, $groupID) = @_;
|
||||
return $self->database($app)->execute('SELECT name FROM groups WHERE groupID = ?', $groupID)->row->[0];
|
||||
# return name
|
||||
my $row = $self->database($app)->execute('SELECT name FROM groups WHERE groupID = ?', $groupID)->row;
|
||||
if (defined($row)) {
|
||||
return $row->[0];
|
||||
} else {
|
||||
return undef;
|
||||
}
|
||||
# return name or undef
|
||||
}
|
||||
|
||||
sub setGroup {
|
||||
@ -271,7 +284,13 @@ sub addRight {
|
||||
sub getRightID {
|
||||
my $self = shift;
|
||||
my($app, $name) = @_;
|
||||
return $self->database($app)->execute('SELECT rightID FROM rights WHERE name = ?', $name)->row->[0];
|
||||
my $row = $self->database($app)->execute('SELECT rightID FROM rights WHERE name = ?', $name)->row;
|
||||
if (defined($row)) {
|
||||
return $row->[0];
|
||||
} else {
|
||||
return undef;
|
||||
}
|
||||
# return rightID or undef
|
||||
}
|
||||
|
||||
sub setupInstall {
|
||||
@ -286,11 +305,11 @@ sub setupInstall {
|
||||
CREATE TABLE user (
|
||||
userID integer unsigned auto_increment NOT NULL PRIMARY KEY,
|
||||
password varchar(255) NOT NULL,
|
||||
mode integer unsigned DEFAULT 0,
|
||||
mode integer unsigned NOT NULL DEFAULT 0,
|
||||
adminMessage varchar(255),
|
||||
newFieldID integer unsigned,
|
||||
newFieldValue varchar(255),
|
||||
newFieldKey varchar(255),
|
||||
newFieldKey varchar(255)
|
||||
)
|
||||
');
|
||||
# +-------------------+
|
||||
@ -338,7 +357,7 @@ sub setupInstall {
|
||||
name varchar(64) NOT NULL,
|
||||
type varchar(64) NOT NULL,
|
||||
data text,
|
||||
mode integer unsigned DEFAULT 0,
|
||||
mode integer unsigned NOT NULL DEFAULT 0,
|
||||
UNIQUE KEY (category, name)
|
||||
)
|
||||
');
|
||||
|
@ -101,6 +101,11 @@ sub createResultsFrame {
|
||||
my($statement, $execute, @values) = @_;
|
||||
$self->assert($self->handle, 1, 'No database handle: '.(defined($self->errstr) ? $self->errstr : 'unknown error'));
|
||||
my $handle = $self->handle->prepare($statement);
|
||||
# untaint the values... (XXX?)
|
||||
foreach my $value (@values) {
|
||||
$value =~ /^(.*)$/os;
|
||||
$value = $1;
|
||||
}
|
||||
if ($handle and ((not defined($execute)) or $handle->execute(@values))) {
|
||||
return PLIF::Database::ResultsFrame::DBI->create($handle, $self, $execute);
|
||||
} else {
|
||||
|
@ -74,7 +74,8 @@ sub getArguments {
|
||||
# Returns the values given for that argument if it already exists,
|
||||
# otherwise undef. In a scalar context, returns the first value (or
|
||||
# undef if the argument was never given). In an array context, returns
|
||||
# all the values given.
|
||||
# all the values given. (i.e., the same as getArgument but without the
|
||||
# implicit call to createArgument)
|
||||
sub peekArgument {
|
||||
my $self = shift;
|
||||
my($argument) = @_;
|
||||
@ -151,7 +152,7 @@ sub propertyGet {
|
||||
if ($self->SUPER::propertyExists(@_)) {
|
||||
return $self->SUPER::propertyGet(@_);
|
||||
} else {
|
||||
return $self->getArgument(@_); # XXX assumes that return propagates wantarray context...
|
||||
return $self->peekArgument(@_); # XXX assumes that return propagates wantarray context...
|
||||
# if not:
|
||||
# my @result = $self->getArgument(@_);
|
||||
# if (wantarray) {
|
||||
|
@ -185,15 +185,15 @@ sub getDefaultString {
|
||||
} elsif ($string eq 'loginFailed') {
|
||||
return '<text><if lvalue="(data.tried)" condition="=" rvalue="1">Wrong username or password.</if><else>You must give your username or password.</else><br/><!-- XXX offer to create an account or send the password --><br/></text>';
|
||||
} elsif ($string eq 'loginDetailsSent') {
|
||||
return '<text>Login details were sent. (Protocol: <text variable="(data.protocol)"/>; Address: <text variable="(data.address)"/>)<br/></text>';
|
||||
return '<text>Login details were sent. (Protocol: <text value="(data.protocol)"/>; Address: <text value="(data.address)"/>)<br/></text>';
|
||||
}
|
||||
} elsif ($protocol eq 'http') {
|
||||
if ($string eq 'loginAccessDenied') {
|
||||
return '<text>HTTP/1.1 401 Access Denied<br/>Content-Type: text/plain<br/><br/>Access Denied</text>';
|
||||
} elsif ($string eq 'loginFailed') {
|
||||
return '<text>HTTP/1.1 401 Login Required<br/>WWW-Authenticate: Basic realm="<text variable="(data.app.name)"/>"<br/>Content-Type: text/plain<br/><br/><if lvalue="(data.tried)" condition="=" rvalue="1">Wrong username or password.</if><else>You must give your username or password.</else><br/><!-- XXX offer to create an account or send the password --></text>';
|
||||
return '<text>HTTP/1.1 401 Login Required<br/>WWW-Authenticate: Basic realm="<text value="(data.app.name)"/>"<br/>Content-Type: text/plain<br/><br/><if lvalue="(data.tried)" condition="=" rvalue="1">Wrong username or password.</if><else>You must give your username or password.</else><br/><!-- XXX offer to create an account or send the password --></text>';
|
||||
} elsif ($string eq 'loginDetailsSent') {
|
||||
return '<text>HTTP/1.1 200 OK<br/>Content-Type: text/plain<br/><br/>Login details were sent.<br/>Protocol: <text variable="(data.protocol)"/><br/>Address: <text variable="(data.address)"/>)</text>';
|
||||
return '<text>HTTP/1.1 200 OK<br/>Content-Type: text/plain<br/><br/>Login details were sent.<br/>Protocol: <text value="(data.protocol)"/><br/>Address: <text value="(data.address)"/>)</text>';
|
||||
}
|
||||
}
|
||||
return; # nope, sorry
|
||||
|
@ -53,7 +53,7 @@ sub getUserByCredentials {
|
||||
my $self = shift;
|
||||
my($app, $username, $password) = @_;
|
||||
my $object = $self->getUserByUsername($app, $username);
|
||||
if ($object->checkPassword($password)) {
|
||||
if (defined($object) and ($object->checkPassword($password))) {
|
||||
return $object;
|
||||
} else {
|
||||
return undef;
|
||||
|
Loading…
Reference in New Issue
Block a user