Commit 420cbc1deaa10b62f6a17945ea6b9132398e7177
1 parent
a17e89e1
(#2681) added code to automatically insert into search permissions table to enab…
…le immediate metadata searching git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@2259 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
58 additions
and
0 deletions
lib/documentmanagement/Document.inc
| @@ -317,6 +317,8 @@ class Document { | @@ -317,6 +317,8 @@ class Document { | ||
| 317 | if ($result) { | 317 | if ($result) { |
| 318 | //set the current documents primary key | 318 | //set the current documents primary key |
| 319 | $this->iId = $sql->insert_id(); | 319 | $this->iId = $sql->insert_id(); |
| 320 | + // also insert into search permissions table to enable immediate metadata searching (#2681) | ||
| 321 | + $this->insertDocumentPermissions(); | ||
| 320 | return true; | 322 | return true; |
| 321 | } | 323 | } |
| 322 | $_SESSION["errorMessage"] = $lang_err_database; | 324 | $_SESSION["errorMessage"] = $lang_err_database; |
| @@ -326,6 +328,62 @@ class Document { | @@ -326,6 +328,62 @@ class Document { | ||
| 326 | return false; | 328 | return false; |
| 327 | 329 | ||
| 328 | } | 330 | } |
| 331 | + | ||
| 332 | + function insertDocumentPermissions() { | ||
| 333 | + global $default; | ||
| 334 | + | ||
| 335 | + $sql = $default->db; | ||
| 336 | + | ||
| 337 | + // group permissions | ||
| 338 | + $sGroupPerms = "INSERT INTO $default->search_permissions_table (user_id, document_id) " . | ||
| 339 | + "SELECT UGL.user_id AS user_id, D.id AS document_id " . | ||
| 340 | + "FROM $default->owl_documents_table AS D INNER JOIN folders AS F ON D.folder_id = F.id " . | ||
| 341 | + "INNER JOIN $default->owl_groups_folders_table AS GFL ON GFL.folder_id = F.id " . | ||
| 342 | + "INNER JOIN $default->owl_users_groups_table AS UGL ON UGL.group_id = GFL.group_id " . | ||
| 343 | + "WHERE D.id=$this->iId"; | ||
| 344 | + $default->log->info("addDocument groupPerms=$sGroupPerms"); | ||
| 345 | + if ($sql->query($sGroupPerms)) { | ||
| 346 | + $default->log->info("groupPerms succeeded"); | ||
| 347 | + } else { | ||
| 348 | + $default->log->info("groupPerms failed"); | ||
| 349 | + } | ||
| 350 | + // role permissions | ||
| 351 | + $sRolePerms = "INSERT INTO $default->search_permissions_table (user_id, document_id) " . | ||
| 352 | + "SELECT user_id, document_id " . | ||
| 353 | + "FROM $default->owl_folders_user_roles_table " . | ||
| 354 | + "WHERE document_id=$this->iId"; | ||
| 355 | + $default->log->info("addDocument rolePerms=$sRolePerms"); | ||
| 356 | + if ($sql->query($sRolePerms)) { | ||
| 357 | + $default->log->info("rolePerms succeeded"); | ||
| 358 | + } else { | ||
| 359 | + $default->log->info("rolePerms failed"); | ||
| 360 | + } | ||
| 361 | + | ||
| 362 | + // public folders | ||
| 363 | + $sPublicFolderPerms = "INSERT INTO $default->search_permissions_table (user_id, document_id) " . | ||
| 364 | + "SELECT U.id, D.id " . | ||
| 365 | + "FROM $default->owl_users_table AS U, $default->owl_documents_table AS D INNER JOIN $default->owl_folders_table AS F ON D.folder_id = F.id " . | ||
| 366 | + "WHERE F.is_public = 1 " . | ||
| 367 | + "AND D.id=$this->iId"; | ||
| 368 | + $default->log->info("addDocument publicFolder=$sPublicFolderPerms"); | ||
| 369 | + if ($sql->query($sPublicFolderPerms)) { | ||
| 370 | + $default->log->info("publicFolder succeeded"); | ||
| 371 | + } else { | ||
| 372 | + $default->log->info("publicFolder failed"); | ||
| 373 | + } | ||
| 374 | + | ||
| 375 | + // creator permissions | ||
| 376 | + $sCreatorPerms = "INSERT INTO $default->search_permissions_table (user_id, document_id) " . | ||
| 377 | + "SELECT creator_id, id " . | ||
| 378 | + "FROM $default->owl_documents_table " . | ||
| 379 | + "WHERE id=$this->iId"; | ||
| 380 | + $default->log->info("addDocument creatorPerms=$sCreatorPerms"); | ||
| 381 | + if ($sql->query($sCreatorPerms)) { | ||
| 382 | + $default->log->info("creatorPerms succeeded"); | ||
| 383 | + } else { | ||
| 384 | + $default->log->info("creatorPerms failed"); | ||
| 385 | + } | ||
| 386 | + } | ||
| 329 | 387 | ||
| 330 | /** | 388 | /** |
| 331 | * Update the documents current values in the database | 389 | * Update the documents current values in the database |