diff --git a/lib/administration/GroupManager.inc b/lib/administration/GroupManager.inc new file mode 100644 index 0000000..71e1bb5 --- /dev/null +++ b/lib/administration/GroupManager.inc @@ -0,0 +1,459 @@ +owl_groups_table WHERE name = '" . $name . "'"; + $sql->query($query); + $rows = $sql->num_rows($sql); + + if ($rows > 0) + { + // duplicate username + $default->errorMessage = "GroupManager::The Group name " . $name . " is already in use, please choose another one"; + $default->log->debug($default->errorMessage); + return false; + } + // insert the user + $query = "INSERT INTO $default->owl_groups_table (name) VALUES ('" . $name . "')"; + + $result = $sql->query($query); + + if(!'result') + { + $default->log->debug( "GroupManager::New Group Addition Unsuccessful!
"); + return false; + } + else + { + $default->log->debug ("GroupManager::New Group added Successfully!
"); + return true; + } + + + +} + + /** + * Removes a group from the groups table as well as from the groups_units_link table + * + * @param groupID + * The id of the group to be deleted + * @return boolean + * True if the deletion was successful, else false if not or nonexistant. + */ + function removeGroup($groupID) + { + global $default; + // create a connection + $sql = new Owl_DB; + + //do validation that userid exists + $query = "SELECT * FROM $default->owl_groups_table WHERE id = '" . $groupID ."'"; + $result = $sql->query($query); + $row = $sql->num_rows($result); + + // check if result was found..0 if not + if($row == 0) + { + $default->log->debug("GroupManager::Group does not exist in the database
"); + return false; + } + + //if user id exists delete it from the users table + $query = "DELETE FROM $default->owl_groups_table WHERE id = $groupID"; + $result = $sql->query($query); + + if(!'result') + { + $default->log->debug("GroupManager::Deletion unsuccessful
"); + return false; + } + else + { + $default->log->debug ("GroupManager::Deletion from user table Successful
"); + //check if belongs to group + + $result= $this->removeGroupFromUnit($groupID); + return true; + } + + + + } + + /** + * Updates groups details ..ie rename the group + * + * @param groupID + * the group which is to be renamed + * @param name + * new name of the group + * @return boolean + * true if the addition was successful, else false. + */ + function updateGroup($groupID, $name) + { + global $default; + // create a connection + $sql = new Owl_DB; + + //do validation that userid exists + $query = "SELECT * FROM $default->owl_groups_table WHERE id = $groupID"; + $result = $sql->query($query); + $row = $sql->num_rows($result); + + //if row = 0 ...then no entry was found..so return false + if($row == 0) + { + $default->log->debug("GroupManager::Group does not exist in the database
"); + return false; + } + + //if user id exists update all info into the users table + $query = "UPDATE $default->owl_groups_table SET name = '" . $name . "' WHERE id = $groupID " ; + + $result = $sql->query($query); + + + // error checking to see if success + if(!'result') + { + $default->log->debug("GroupManager::Not Updated"); + return false; + } + else + { + $default->log->debug("GroupManager::Update Successful
"); + return true; + } + } + + /** + * Returns an array of all the groups + * + * @return array + * An array of groups + */ + function listGroups() + { + + global $default; + $groups = array (); + $i = 0; + // create a connection + $sql = new Owl_DB; + + //Get list of all the usernames + $query = "SELECT name FROM $default->owl_groups_table"; + $result = $sql->query($query); + $row = $sql->num_rows($result); + + //error checking + if($row == 0) + { + $default->log->debug("GroupManager::No users in table"); + return false; + } + + //store in array + while($sql->next_record()) + { + $groups["$i"] = array("name" => $sql->f("name")); + $i++; + } + + //return an array of the groups + return $groups; + + } + + /** + * + * Adds a group to a unit NB: Group belongs to 1 unit only + * + * @param groupID + * The ID of the group to add the user to + * @param unitID + * The Id of the unit to add to + * @return boolean + * True if the addition was successful, else false if not or nonexistant. + */ + function addGroupToUnit($groupID,$unitID) + { + global $default; + // create a connection + $sql = new Owl_DB; + + //do validation that groupid exists + $query = "SELECT * FROM $default->owl_groups_units_table WHERE group_id = $groupID"; + $result = $sql->query($query); + $row = $sql->num_rows($result); + + // if it does exist return false..already there + if($row >= 1) + { + $default->log->debug("GroupManager::Group already belongs to a unit
"); + return false; + } + + //add user to the table + $query = "INSERT INTO $default->owl_groups_units_table (group_id,unit_id) VALUES($groupID,$unitID)"; + $result = $sql->query($query); + + if(!'result') + { + $default->log->debug("GroupManager::Insertion into groups_units table unsuccessful
"); + return false; + } + else + { + $default->log->debug("GroupManager::Insertion into groups_units table Successful
"); + return true; + } + + } + + + /** + * Removes a group from a unit NB: Group can only belong to 1 unit + * + * @param groupID + * The ID of the group be removed from a unit + + * @return boolean + * True if the deletion was successful, else false if not or nonexistant. + */ + function removeGroupFromUnit($groupID) + { + global $default; + // create a connection + $sql = new Owl_DB; + + //do validation that groupid exists + $query = "SELECT * FROM $default->owl_groups_units_table WHERE group_id = $groupID"; + $result = $sql->query($query); + $row = $sql->num_rows($result); + + // check if result was found..0 if not + if($row == 0) + { + $default->log->debug("GroupManager::Group does not exist in the database
"); + return false; + } + + //if group id exists delete it from the users table + $query = "DELETE FROM $default->owl_groups_units_table WHERE group_id = $groupID"; + $result = $sql->query($query); + + if(!'result') + { + $default->log->debug ("GroupManager::Deletion unsuccessful
"); + return false; + } + else + { + $default->log->debug("GroupManager::Deletion from user_group_link table Successful
"); + return true; + } + + } + /* + * + * gets the id of a group using its name + * + * @param $groupName + * The GroupName for which we want its ID + * @return Integer + * The groupname's Id + */ + + function getGroupID($groupName) + { + global $default; + + $sql = new Owl_DB; + + // check that group exists if it does'nt return false + $query = "SELECT id FROM $default->owl_groups_table WHERE name = '" . $groupName . "'"; + $sql->query($query); + $rows = $sql->num_rows($sql); + // go into record set + $sql->next_record(); + + // store the id in a variable + $id = $sql->f("id"); + + // if no entry..username does not exist + if ($rows == 0) + { + // duplicate username + $default->errorMessage = "GroupManager::The Group " . $groupName . " does not exist
"; + $default->log->debug($default->errorMessage); + return false; + } + else + { + return $id; + } + } + + /* + * Function getGroupName($groupID) + * + * gets the id of a user using their username + * + * @param $username + * The username for which we want its ID + * @return char + * name of group + */ + + function getGroupName($groupID) + { + global $default; + + $sql = new Owl_DB; + + + // check that username exists if it does'nt return false + $query = "SELECT name FROM $default->owl_groups_table WHERE id = '" . $groupID . "'"; + $sql->query($query); + $rows = $sql->num_rows($sql); + // go into record set + $sql->next_record(); + + // store the id in a variable + $name = $sql->f("name"); + + // if no entry..group name does'nt exist + if ($rows == 0) + { + // duplicate username + $default->errorMessage = "GroupManager::The group does not exist
"; + $default->log->debug($default->errorMessage); + return false; + } + else + { + return $name; + } + } + + /* + * + * Gets the unit that the group belongs to + * + * @param $groupID + * The ID of the group + * @return Array + * array of unitID and name of the unit + */ + function getUnit($groupID) + { + global $default; + $unitinfo = array(); + $sql = new Owl_DB; + //$groupName = new GroupManager; + + + // check that group exists if it does'nt return false + $query = "SELECT unit_id FROM $default->owl_groups_units_table WHERE group_id = '" . $groupID . "'"; + $sql->query($query); + $rows = $sql->num_rows($sql); + + // if no entry..group does not belong to a unit + if ($rows == 0) + { + // duplicate username + $default->errorMessage = "GroupManager::The group does not belong to a unit
"; + $default->log->debug($default->errorMessage); + return false; + } + + + while($sql->next_record()) + { + $unitinfo[1] = array("id" => $sql->f("unit_id"), + "name" => $this->getUnitName($sql->f("unit_id")) // TODO change this to unit obj + ); + + } + + return $unitinfo; + } + + + + /* + * + * gets the name of a unit using their username + * + * @param unitID + * The id of the unit who's name we want + * @return char + * name of unit + */ + + function getUnitName($unitID) + { + global $default; + + $sql = new Owl_DB; + + + // check that username exists if it does'nt return false + $query = "SELECT name FROM $default->owl_units_table WHERE id = '" . $unitID . "'"; + $sql->query($query); + $rows = $sql->num_rows($sql); + // go into record set + $sql->next_record(); + + // store the id in a variable + $name = $sql->f("name"); + + // if no entry..unit name does'nt exist + if ($rows == 0) + { + // duplicate username + $default->errorMessage = "GroupManager::The unit does not exist
"; + $default->log->debug($default->errorMessage); + return false; + } + else + { + return $name; + } + } + + } + +?> \ No newline at end of file