diff --git a/lib/foldermanagement/Folder.inc b/lib/foldermanagement/Folder.inc index 20c55d0..9f5cb04 100644 --- a/lib/foldermanagement/Folder.inc +++ b/lib/foldermanagement/Folder.inc @@ -448,12 +448,20 @@ class Folder extends KTEntity { * @return true if the folder exists, false otherwise and set $_SESSION["errorMessage"] */ function folderExistsName($sName, $iParentID) { - $sQuery = "SELECT id FROM " . KTUtil::getTableName('folders') . " WHERE name = ? AND parent_id = ?";/*ok*/ + $sQuery = "SELECT id, name FROM " . KTUtil::getTableName('folders') . " WHERE name = ? AND parent_id = ?";/*ok*/ $aParams = array($sName, $iParentID); $res = DBUtil::getResultArray(array($sQuery, $aParams)); //var_dump($res); if (count($res) != 0) { - return true; + + // mysql is case-insensitive - check using php + foreach ($res as $folder){ + $name = isset($folder['name']) ? $folder['name'] : ''; + if($name == $sName){ + return true; + } + } + return false; } return false; } diff --git a/lib/users/User.inc b/lib/users/User.inc index 7c096ed..00346f5 100644 --- a/lib/users/User.inc +++ b/lib/users/User.inc @@ -504,20 +504,59 @@ class User extends KTEntity { $iUserId = $_SESSION['iUserId']; } - $pdgTable = KTUtil::getTableName('permission_descriptor_groups'); + $pdgTable = KTUtil::getTableName('permission_descriptor_groups'); global $default; $uglTable = $default->users_groups_table; - $sQuery = "SELECT COUNT(*) AS num FROM $pdgTable pd INNER JOIN $uglTable ug ON ug.group_id = pd.group_id WHERE pd.descriptor_id = ? AND ug.user_id = ?"; $aParams = array($oPermissionDescriptor->getID(), $iUserId); $res = DBUtil::getOneResultKey(array($sQuery, $aParams), 'num'); + if (PEAR::isError($res) || empty($res)) { - return false; + + $aSubGrpOneParams = array($oPermissionDescriptor->getID()); + + //Checking if user is in a subgroup + //Query One is the get any groups with permissions + $sSubGrpQueryOne = "SELECT group_id FROM $pdgTable pd + WHERE pd.descriptor_id = ?"; + $aSubRes = DBUtil::getResultArrayKey(array($sSubGrpQueryOne, $aSubGrpOneParams), 'group_id'); + + if(!(PEAR::isError($aSubRes) || empty($aSubRes))) + { + $list = implode(',', $aSubRes); + + $sSubGroupTable = KTUtil::getTableName('groups_groups_link'); + $aParams = array($iUserId); + + //Query two is to check if the current user's group is a sub group of the + //group with permissions + $sSubGrpQueryTwo = "SELECT COUNT(member_group_id) count FROM $sSubGroupTable ggl + INNER JOIN users_groups_link ugl ON (ugl.group_id = ggl.member_group_id) + WHERE ugl.user_id = ? AND parent_group_id IN ($list)"; + $aSubResTwo = DBUtil::getOneResultKey(array($sSubGrpQueryTwo, $aParams), 'count'); + + if(PEAR::isError($aSubResTwo) || empty($aSubResTwo)) + { + return false; + } + else + { + return true; + } + } + else + { + return false; + } + + } + else + { + return true; } - return true; } } ?> \ No newline at end of file diff --git a/plugins/tagcloud/TagCloudTriggers.php b/plugins/tagcloud/TagCloudTriggers.php index 7451a3c..c1a3117 100644 --- a/plugins/tagcloud/TagCloudTriggers.php +++ b/plugins/tagcloud/TagCloudTriggers.php @@ -87,7 +87,7 @@ class KTAddDocumentTrigger { } if($tagString != ''){ $words_table = KTUtil::getTableName('tag_words'); - $tagString = str_replace(' ', '', $tagString); + $tagString = str_replace(' ', ' ', $tagString); $tags = explode(',',$tagString); $aTagIds = array();