diff options
author | Oliver Tappe | 2006-08-16 12:45:26 +0200 |
---|---|---|
committer | Oliver Tappe | 2006-08-16 12:45:26 +0200 |
commit | b6dc6ac7d8c1db483794c5d296cb3d4616253ae5 (patch) | |
tree | ebd379fbf6bf8243828557de37166ebfa9865d3c /config-db/ODLX/MetaDB/DBI.pm | |
parent | Allow to use admin provided passwd and shadow files (do not create a (diff) | |
download | core-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.pm | 78 |
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 ################################################################################ |