зеркало из https://github.com/mozilla/pjs.git
Minor bug fixes required to make the code run without crashing...
This commit is contained in:
Родитель
17da5d7b8a
Коммит
eb1fb18fb5
|
@ -45,40 +45,29 @@ 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'.
|
||||
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 $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;
|
||||
# return userID or undef
|
||||
}
|
||||
|
||||
sub getUserIDByContactDetails {
|
||||
my $self = shift;
|
||||
my($app, $contactName, $address) = @_;
|
||||
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 $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;
|
||||
# return userID or undef
|
||||
}
|
||||
|
||||
sub getUserByID {
|
||||
my $self = shift;
|
||||
my($app, $id) = @_;
|
||||
$self->notImplemented();
|
||||
my @userData = $self->database($app)->execute('SELECT userID, mode, password, adminMessage, newFieldID, newFieldValue, newFieldKey
|
||||
FROM user WHERE userID = ?', $id)->row;
|
||||
if (@userData) {
|
||||
|
@ -356,7 +345,7 @@ sub setupInstall {
|
|||
category varchar(64) NOT NULL,
|
||||
name varchar(64) NOT NULL,
|
||||
type varchar(64) NOT NULL,
|
||||
data text,
|
||||
data text NOT NULL DEFAULT \'\',
|
||||
mode integer unsigned NOT NULL DEFAULT 0,
|
||||
UNIQUE KEY (category, name)
|
||||
)
|
||||
|
|
|
@ -41,7 +41,9 @@ $app->run();
|
|||
# setup everything (automatically called by the constructor, above)
|
||||
sub init {
|
||||
my $self = shift;
|
||||
$self->dump(5, '', '', '*** Started PLIF Application ***', '********************************');
|
||||
$self->dump(10, '', '', '********************************');
|
||||
$self->dump(5, '*** Started PLIF Application ***');
|
||||
$self->dump(10, '********************************');
|
||||
$self->SUPER::init(@_);
|
||||
$self->initInput();
|
||||
}
|
||||
|
@ -101,7 +103,7 @@ sub output {
|
|||
my $self = shift;
|
||||
my($protocol, $session) = @_;
|
||||
my $default = 0;
|
||||
if (not $protocol) {
|
||||
if (not defined($protocol)) {
|
||||
if (defined($self->defaultOutput)) {
|
||||
return $self->defaultOutput;
|
||||
}
|
||||
|
@ -112,6 +114,9 @@ sub output {
|
|||
$default = 1;
|
||||
$protocol = $self->selectOutputProtocol();
|
||||
}
|
||||
if (not defined($session)) {
|
||||
$session = $self->getObject('session');
|
||||
}
|
||||
# There are two output models in PLIF. The first is the protocol-
|
||||
# specific-code model, the second is the string-expander
|
||||
# model. The string expander model is still protocol specific to
|
||||
|
|
|
@ -49,7 +49,7 @@ sub newPassword {
|
|||
# password for a one-time sending to the user.
|
||||
my $password = $self->generatePassword();
|
||||
my $crypt = $self->crypt($password);
|
||||
return ($crypt, password);
|
||||
return ($crypt, $password);
|
||||
}
|
||||
|
||||
sub checkPassword {
|
||||
|
|
|
@ -126,7 +126,8 @@ sub objectInit {
|
|||
}
|
||||
$self->groups({%$groups}); # hash of groupID => groupName
|
||||
$self->originalGroups({%$groups}); # a backup used to make a comparison when saving the groups
|
||||
$self->rights(map {$_ => 1} @$rights); # map a list of strings into a hash for easy access
|
||||
my %rights = map {$_ => 1} @$rights;
|
||||
$self->rights(\%rights); # map a list of strings into a hash for easy access
|
||||
$self->{'_DIRTY'}->{'properties'} = 0;
|
||||
}
|
||||
|
||||
|
@ -226,8 +227,8 @@ sub hash {
|
|||
$result->{'userID'} = $self->userID,
|
||||
$result->{'mode'} = $self->mode,
|
||||
$result->{'adminMessage'} = $self->adminMessage,
|
||||
$result->{'groups'} = $self->groups,
|
||||
$result->{'rights'} = keys(%{$self->rights});
|
||||
$result->{'groups'} = $self->groups;
|
||||
$result->{'rights'} = [keys(%{$self->rights})];
|
||||
$result->{'fields'} = {};
|
||||
foreach my $field (values(%{$self->fieldsByID})) {
|
||||
# XXX should we also pass the field metadata on? (e.g. typeData)
|
||||
|
@ -292,7 +293,7 @@ sub propertyGet {
|
|||
my $self = shift;
|
||||
my($name) = @_;
|
||||
if ($name eq 'groups') {
|
||||
return {%{$self->groups}};
|
||||
return {%{$self->{'groups'}}};
|
||||
# Create new hash so that they can't edit ours. This ensures
|
||||
# that they can't inadvertently bypass the DIRTY flagging by
|
||||
# propertySet(), above. This does mean that internally we have
|
||||
|
|
Загрузка…
Ссылка в новой задаче