summaryrefslogtreecommitdiffstats
path: root/config-db/ODLX/MetaDB/DBI.pm
diff options
context:
space:
mode:
authorOliver Tappe2006-08-16 12:45:26 +0200
committerOliver Tappe2006-08-16 12:45:26 +0200
commitb6dc6ac7d8c1db483794c5d296cb3d4616253ae5 (patch)
treeebd379fbf6bf8243828557de37166ebfa9865d3c /config-db/ODLX/MetaDB/DBI.pm
parentAllow to use admin provided passwd and shadow files (do not create a (diff)
downloadcore-b6dc6ac7d8c1db483794c5d296cb3d4616253ae5.tar.gz
core-b6dc6ac7d8c1db483794c5d296cb3d4616253ae5.tar.xz
core-b6dc6ac7d8c1db483794c5d296cb3d4616253ae5.zip
* added group-related functions I missed yesterday
* cleanup git-svn-id: http://svn.openslx.org/svn/openslx/trunk@302 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'config-db/ODLX/MetaDB/DBI.pm')
-rw-r--r--config-db/ODLX/MetaDB/DBI.pm78
1 files changed, 76 insertions, 2 deletions
diff --git a/config-db/ODLX/MetaDB/DBI.pm b/config-db/ODLX/MetaDB/DBI.pm
index 9a654744..50c7ecf5 100644
--- a/config-db/ODLX/MetaDB/DBI.pm
+++ b/config-db/ODLX/MetaDB/DBI.pm
@@ -114,6 +114,18 @@ sub fetchAllSystemIDsOfClient
return @rows;
}
+sub fetchAllSystemIDsOfGroup
+{
+ my $self = shift;
+ my $groupID = shift;
+
+ my $sql = qq[
+ SELECT system_id FROM group_system_ref WHERE group_id = '$groupID'
+ ];
+ my @rows = $self->_doSelect($sql, 'system_id');
+ return @rows;
+}
+
sub fetchClientsByFilter
{
my $self = shift;
@@ -143,15 +155,77 @@ sub fetchClientsById
sub fetchAllClientIDsOfSystem
{
my $self = shift;
- my $clientID = shift;
+ my $systemID = shift;
my $sql = qq[
- SELECT client_id FROM client_system_ref WHERE system_id = '$clientID'
+ SELECT client_id FROM client_system_ref WHERE system_id = '$systemID'
];
my @rows = $self->_doSelect($sql, 'system_id');
return @rows;
}
+sub fetchAllClientIDsOfGroup
+{
+ my $self = shift;
+ my $groupID = shift;
+
+ my $sql = qq[
+ SELECT client_id FROM group_client_ref WHERE group_id = '$groupID'
+ ];
+ my @rows = $self->_doSelect($sql, 'system_id');
+ return @rows;
+}
+
+sub fetchGroupsByFilter
+{
+ my $self = shift;
+ my $filter = shift;
+ my $resultCols = shift;
+
+ $resultCols = '*' unless (defined $resultCols);
+ my $sql = "SELECT $resultCols FROM group";
+ my $connector;
+ foreach my $col (keys %$filter) {
+ $connector = !defined $connector ? 'WHERE' : 'AND';
+ $sql .= " $connector $col = '$filter->{$col}'";
+ }
+ my @rows = $self->_doSelect($sql);
+ return @rows;
+}
+
+sub fetchGroupsById
+{
+ my $self = shift;
+ my $id = shift;
+ my $resultCols = shift;
+
+ return $self->fetchGroupsByFilter({'id' => $id}, $resultCols);
+}
+
+sub fetchAllGroupIDsOfSystem
+{
+ my $self = shift;
+ my $systemID = shift;
+
+ my $sql = qq[
+ SELECT group_id FROM group_system_ref WHERE system_id = '$systemID'
+ ];
+ my @rows = $self->_doSelect($sql, 'group_id');
+ return @rows;
+}
+
+sub fetchAllGroupIDsOfClient
+{
+ my $self = shift;
+ my $clientID = shift;
+
+ my $sql = qq[
+ SELECT group_id FROM group_client_ref WHERE client_id = '$clientID'
+ ];
+ my @rows = $self->_doSelect($sql, 'group_id');
+ return @rows;
+}
+
################################################################################
### data manipulation functions
################################################################################