return undef;
}
-sub _get {
- my ($self, $key, $value) = @_;
- my $dbh = $self->connect_db;
- my $sql = "SELECT * FROM users WHERE $key = ?";
- my $sth = $dbh->prepare($sql);
-
- $sth->execute($value);
-
- my $rs = $sth->fetchall_arrayref(+{});
-
- $sth->finish;
- $dbh->disconnect();
-
- if (@$rs == 0) {
- return undef;
- }
-
- return $rs;
-}
-
sub anonymous_user {
my $self = shift;
return $self->select(uid => 1);
my $type = $params{target} || 'user';
+ # select from `users` table
if ($type eq 'user') {
my $user;
if (exists $params{nickname}) {
- my $u = $self->_get(nickname => $params{nickname});
+ my $u = $self->_select("users", nickname => $params{nickname});
$user = $u->[0] if $u;
}
elsif (exists $params{uid}) {
- my $u = $self->_get(uid => $params{uid});
+ my $u = $self->_select("users", uid => $params{uid});
$user = $u->[0] if $u;
}
elsif (exists $params{matchname}) {
- my $u = $self->_get(matchname => $params{matchname});
+ my $u = $self->_select("users", matchname => $params{matchname});
$user = $u->[0] if $u;
}
elsif (exists $params{email}) {
- my $u = $self->_get(realemail => $params{email});
+ my $u = $self->_select("users", realemail => $params{email});
$user = $u->[0] if $u;
}
elsif (exists $params{author}) {
- $user = $self->_get(author => $params{author});
+ $user = $self->_select("users", author => $params{author});
}
if ($user) {
return;
}
+ # select from other table
+ my $ret;
if ($type eq 'acl') {
- my $ret;
if (exists $params{uid}) {
- $ret = $self->_acl(uid => $params{uid});
+ $ret = $self->_select("users_acl", uid => $params{uid});
}
- return $ret;
}
if ($type eq 'info') {
- my $ret;
if (exists $params{uid}) {
- $ret = $self->_info(uid => $params{uid});
+ $ret = $self->_select("users_info", uid => $params{uid});
}
- return $ret;
}
if ($type eq 'comments') {
- my $ret;
if (exists $params{uid}) {
- $ret = $self->_comments(uid => $params{uid});
+ $ret = $self->_select("users_comments", uid => $params{uid});
}
- return $ret;
}
if ($type eq 'param') {
- my $ret;
if (exists $params{uid}) {
- $ret = $self->_param(uid => $params{uid});
+ $ret = $self->_select("users_param", uid => $params{uid});
}
- return $ret;
}
-
- return;
+ return if !$ret;
+ return $ret->[0];
}
-sub _select_rows {
- my ($self, $sql, $value) = @_;
-
+sub _select {
+ my ($self, $table, $key, $value) = @_;
+ my $sql = "SELECT * FROM $table WHERE $key = ?";
my $dbh = $self->connect_db;
my $sth = $dbh->prepare($sql);
$sth->execute($value);
my $rs = $sth->fetchall_arrayref(+{});
-
- $sth->finish;
$dbh->disconnect();
return $rs;
}
-sub _acl {
- my ($self, $key, $value) = @_;
- my $sql = <<"EOSQL";
-SELECT * FROM users_acl
- WHERE $key = ?
-EOSQL
- my $rs = $self->_select_rows($sql, $value);
- return if (@$rs == 0);
-
- my $ret = $rs->[0];
- return $ret;
-}
-
-sub _info {
- my ($self, $key, $value) = @_;
- my $sql = <<"EOSQL";
-SELECT * FROM users_info
- WHERE $key = ?
-EOSQL
- my $rs = $self->_select_rows($sql, $value);
- return if (@$rs == 0);
-
- my $ret = $rs->[0];
- return $ret;
-}
-
-sub _comments {
- my ($self, $key, $value) = @_;
- my $sql = "SELECT * FROM users_comments WHERE $key = ?";
- my $rs = $self->_select_rows($sql, $value);
- return if (@$rs == 0);
-
- my $ret = $rs->[0];
- return $ret;
-}
-
-sub _param {
- my ($self, $key, $value) = @_;
- my $sql = <<"EOSQL";
-SELECT param_id, name, value FROM users_param
- WHERE $key = ?
-EOSQL
-
- my $dbh = $self->connect_db;
- my $sth = $dbh->prepare($sql);
- $sth->execute($value);
- my $rs = $sth->fetchall_hashref('name');
-
- $sth->finish;
- $dbh->disconnect();
-
- return $rs;
-}
-
-
#========================================================================
=head2 _get_salt
$dbh->disconnect;
return 1;
}
+
1;