Commit d7e5da0bc72e4780bf677b368109bbed6e5306ee

Authored by Michael Joseph
1 parent 5455573c

(#2959) tidied and added function to update group search permission entries for …

…a new user in a group


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@2725 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing 1 changed file with 50 additions and 44 deletions
lib/groups/GroupUserLink.inc
... ... @@ -99,31 +99,27 @@ class GroupUserLink {
99 99 function create() {
100 100 global $default, $lang_err_database, $lang_err_object_exists;
101 101 //if the object hasn't been created
102   - if ($this->iId < 0)
103   - {
  102 + if ($this->iId < 0) {
104 103 $sql = $default->db;
105 104 $query = "SELECT user_id, group_id FROM ". $default->users_groups_table ." WHERE user_id = '" . $this->iUserID . "' and group_id = '". $this->iGroupID ."'";
106 105 $sql->query($query);
107 106 $rows = $sql->num_rows($sql);
108 107  
109   - if ($rows > 0)
110   - {
111   - // duplicate username
112   - $_SESSION["errorMessage"] = "GroupUserLink::The id " . $this->iUnitID . " already exists!";
113   - return false;
114   - }
115   - else
116   - {
117   - $sql = $default->db;
118   - $result = $sql->query("INSERT INTO " . $default->users_groups_table . " (group_id, user_id) VALUES ($this->iGroupID, $this->iUserID)");
119   - if ($result) {
120   - $this->iId = $sql->insert_id();
121   - return true;
122   - }
123   - $_SESSION["errorMessage"] = $lang_err_database;
124   - return false;
  108 + if ($rows > 0){
  109 + // duplicate username
  110 + $_SESSION["errorMessage"] = "GroupUserLink::The id " . $this->iUnitID . " already exists!";
  111 + return false;
  112 + } else {
  113 + $sql = $default->db;
  114 + $result = $sql->query("INSERT INTO " . $default->users_groups_table . " (group_id, user_id) VALUES ($this->iGroupID, $this->iUserID)");
  115 + if ($result) {
  116 + $this->iId = $sql->insert_id();
  117 + return true;
  118 + }
  119 + $_SESSION["errorMessage"] = $lang_err_database;
  120 + return false;
  121 + }
125 122 }
126   - }
127 123 $_SESSION["errorMessage"] = $lang_err_object_exists . "id = " . $this->iId . " table = $default->users_groups_table";
128 124 return false;
129 125 }
... ... @@ -197,7 +193,7 @@ class GroupUserLink {
197 193 return false;
198 194 }
199 195  
200   -/**
  196 + /**
201 197 * Static function
202 198 * Get a list of web documents
203 199 *
... ... @@ -224,6 +220,29 @@ class GroupUserLink {
224 220 return false;
225 221 }
226 222  
  223 + /**
  224 + * Updates the search permissions for a group
  225 + */
  226 + function updateSearchPermissions() {
  227 + global $default;
  228 + // group permissions
  229 + $sGroupPerms = "INSERT INTO $default->search_permissions_table (user_id, document_id) " .
  230 + "SELECT UGL.user_id AS user_id, D.id AS document_id " .
  231 + "FROM $default->documents_table AS D INNER JOIN folders AS F ON D.folder_id = F.id " .
  232 + "INNER JOIN $default->groups_folders_table AS GFL ON GFL.folder_id = F.id " .
  233 + "INNER JOIN $default->users_groups_table AS UGL ON UGL.group_id = GFL.group_id " .
  234 + "WHERE GFL.group_id=$this->iGroupID";
  235 + $default->log->info("GroupUserLink groupPerms=$sGroupPerms");
  236 + $sql = $default->db;
  237 + if ($sql->query($sGroupPerms)) {
  238 + $default->log->debug("groupPerms succeeded");
  239 + return true;
  240 + } else {
  241 + $default->log->error("groupPerms failed");
  242 + return false;
  243 + }
  244 + }
  245 +
227 246 function getGroups($iUserID) {
228 247 global $default, $lang_err_database;
229 248 $aGroupUserLink;
... ... @@ -242,56 +261,43 @@ class GroupUserLink {
242 261 $_SESSION["errorMessage"] = $lang_err_database;
243 262 return false;
244 263 }
245   - /*
  264 +
  265 + /**
246 266 * static function
247   - *
248 267 * test to see if group exists already
249 268 *
250 269 * @param false or a value
251   - *
252 270 */
253   -
254   - function userBelongsToGroup($iUserID)
255   - {
256   - global $default;
257   -
258   - $value = lookupField("$default->users_groups_table", "group_id", "user_id", $iUserID );
259   -
260   - return $value;
261   -
  271 + function userBelongsToGroup($iUserID){
  272 + global $default;
  273 + $value = lookupField("$default->users_groups_table", "group_id", "user_id", $iUserID );
  274 + return $value;
262 275 }
263 276  
264   - /*
  277 + /**
265 278 * static function
266   - *
267 279 * sets the id of the groupunit using their groupid
268 280 *
269 281 * @param String
270 282 * The unit_ID
271   - *
272 283 */
273 284  
274   - function setUserGroupID($iGroupId, $iUserId)
275   - {
  285 + function setUserGroupID($iGroupId, $iUserId) {
276 286 global $default;
277 287 $sql = $default->db;
278 288 $result = $sql->query("SELECT id FROM $default->users_groups_table WHERE user_id = $iUserId and group_id = $iGroupId");
279 289 if ($result) {
280 290 if ($sql->next_record()) {
281 291 $id = $sql->f("id");
282   -
283   - }else{
  292 + } else{
284 293 $_SESSION["errorMessage"] = $lang_err_database;
285 294 return false;
286 295 }
287   -
288   - }else{
  296 + } else{
289 297 $_SESSION["errorMessage"] = $lang_err_database;
290 298 return false;
291 299 }
292   -
293 300 $this->iId = $id;
294   -
295 301 }
296 302 }
297 303 -?>
  304 +?>
298 305 \ No newline at end of file
... ...