Commit c560e9501c0664af62c24da7b88914092fd2612d

Authored by Conrad Vermeulen
1 parent b97be9c6

KTS-3766

"Search results must return the permissions similar to KTAPI for use by client tools"
Fixed.

Committed By: Conrad Vermeulen
Reviewed By: Megan Watson

git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@9448 c91229c3-7414-0410-bfa2-8a42b809f60b
search2/indexing/indexerCore.inc.php
@@ -40,6 +40,7 @@ @@ -40,6 +40,7 @@
40 define('SEARCH2_INDEXER_DIR',realpath(dirname(__FILE__)) . '/'); 40 define('SEARCH2_INDEXER_DIR',realpath(dirname(__FILE__)) . '/');
41 require_once('indexing/extractorCore.inc.php'); 41 require_once('indexing/extractorCore.inc.php');
42 require_once(KT_DIR . '/plugins/ktcore/scheduler/schedulerUtil.php'); 42 require_once(KT_DIR . '/plugins/ktcore/scheduler/schedulerUtil.php');
  43 +require_once(KT_DIR . '/ktapi/ktapi.inc.php');
43 44
44 class IndexerInconsistencyException extends Exception {}; 45 class IndexerInconsistencyException extends Exception {};
45 46
@@ -211,21 +212,6 @@ class DocumentResultItem extends QueryResultItem @@ -211,21 +212,6 @@ class DocumentResultItem extends QueryResultItem
211 $this->loadDocumentInfo(); 212 $this->loadDocumentInfo();
212 } 213 }
213 214
214 - /*protected function __isset($property)  
215 - {  
216 - switch($property)  
217 - {  
218 - case 'DocumentID': return isset($this->document_id);  
219 - case 'Rank': return isset($this->rank);  
220 - case 'Text': return isset($this->text);  
221 - case 'Title': return isset($this->title);  
222 - case null: break;  
223 - default:  
224 - throw new Exception("Unknown property '$property' to get on QueryResultItem");  
225 - }  
226 - return true; // should not be reached  
227 - }*/  
228 -  
229 // TODO: this is bad. must refactor to do the query on the group of documents. 215 // TODO: this is bad. must refactor to do the query on the group of documents.
230 public function loadDocumentInfo() 216 public function loadDocumentInfo()
231 { 217 {
@@ -327,11 +313,7 @@ class DocumentResultItem extends QueryResultItem @@ -327,11 +313,7 @@ class DocumentResultItem extends QueryResultItem
327 public function getFilename() { return (string)$this->filename; } 313 public function getFilename() { return (string)$this->filename; }
328 public function getFolderId() { return (int)$this->folderId; } 314 public function getFolderId() { return (int)$this->folderId; }
329 public function getOemDocumentNo() { return (string) $this->oemDocumentNo; } 315 public function getOemDocumentNo() { return (string) $this->oemDocumentNo; }
330 - public function getDocument() { if (is_null($this->document))  
331 - {  
332 - $this->document = Document::get($this->id);  
333 - }  
334 - return $this->document; } 316 + public function getDocument() { return Document::get($this->id); }
335 public function getIsAvailable() { return $this->Document->isLive(); } 317 public function getIsAvailable() { return $this->Document->isLive(); }
336 public function getCheckedOutUser() { return (string) $this->checkedOutUser; } 318 public function getCheckedOutUser() { return (string) $this->checkedOutUser; }
337 public function getCheckedOutByr() { return $this->getCheckedOutUser(); } 319 public function getCheckedOutByr() { return $this->getCheckedOutUser(); }
@@ -339,11 +321,13 @@ class DocumentResultItem extends QueryResultItem @@ -339,11 +321,13 @@ class DocumentResultItem extends QueryResultItem
339 public function getWorkflow() { return $this->getWorkflow(); } 321 public function getWorkflow() { return $this->getWorkflow(); }
340 public function getWorkflowStateOnly() { return (string)$this->workflowState; } 322 public function getWorkflowStateOnly() { return (string)$this->workflowState; }
341 public function getWorkflowState() { return $this->getWorkflowStateOnly(); } 323 public function getWorkflowState() { return $this->getWorkflowStateOnly(); }
342 - public function getWorkflowAndState() { if (is_null($this->workflow))  
343 - {  
344 - return '';  
345 - }  
346 - return "$this->workflow - $this->workflowState"; } 324 + public function getWorkflowAndState() {
  325 + if (is_null($this->workflow))
  326 + {
  327 + return '';
  328 + }
  329 + return "$this->workflow - $this->workflowState";
  330 + }
347 public function getMimeType() { return (string) $this->mimeType; } 331 public function getMimeType() { return (string) $this->mimeType; }
348 public function getMimeIconPath() { return (string) $this->mimeIconPath; } 332 public function getMimeIconPath() { return (string) $this->mimeIconPath; }
349 public function getMimeDisplay() { return (string) $this->mimeDisplay; } 333 public function getMimeDisplay() { return (string) $this->mimeDisplay; }
@@ -359,16 +343,16 @@ class DocumentResultItem extends QueryResultItem @@ -359,16 +343,16 @@ class DocumentResultItem extends QueryResultItem
359 public function getStatus() { return $this->status; } 343 public function getStatus() { return $this->status; }
360 public function getStoragePath() { return $this->storagePath; } 344 public function getStoragePath() { return $this->storagePath; }
361 public function getDocumentType() { return $this->documentType; } 345 public function getDocumentType() { return $this->documentType; }
362 - public function getPermissions() { return 'not available'; }  
363 - public function getCanBeReadByUser() { if (!$this->live)  
364 - return false;  
365 - if (Permission::userHasDocumentReadPermission($this->Document))  
366 - return true;  
367 - if (Permission::adminIsInAdminMode())  
368 - return true;  
369 - return false; }  
370 -  
371 - 346 + public function getPermissions() { return KTAPI_Document::get_permission_string($this->Document); }
  347 + public function getCanBeReadByUser() {
  348 + if (!$this->live)
  349 + return false;
  350 + if (Permission::userHasDocumentReadPermission($this->Document))
  351 + return true;
  352 + if (Permission::adminIsInAdminMode())
  353 + return true;
  354 + return false;
  355 + }
372 } 356 }
373 357
374 class FolderResultItem extends QueryResultItem 358 class FolderResultItem extends QueryResultItem
@@ -380,20 +364,20 @@ class FolderResultItem extends QueryResultItem @@ -380,20 +364,20 @@ class FolderResultItem extends QueryResultItem
380 public function __construct($folder_id, $rank=null, $title=null, $text=null, $fullpath = null) 364 public function __construct($folder_id, $rank=null, $title=null, $text=null, $fullpath = null)
381 { 365 {
382 parent::__construct($folder_id, $title, $rank, $text, $fullpath); 366 parent::__construct($folder_id, $title, $rank, $text, $fullpath);
383 - $this->loadDocumentInfo(); 367 + $this->loadFolderInfo();
384 } 368 }
385 369
386 public function getFolderID() { return $this->getId(); } 370 public function getFolderID() { return $this->getId(); }
387 public function getParentID() { return $this->parentId; } 371 public function getParentID() { return $this->parentId; }
388 public function getCreatedBy() { return $this->createdBy; } 372 public function getCreatedBy() { return $this->createdBy; }
389 public function getMimeIconPath() { return 'folder'; } 373 public function getMimeIconPath() { return 'folder'; }
390 - public function getFolder() {  
391 - return $this->folder; } 374 + public function getFolder() { return Folder::get($this->getFolderID()); }
  375 + public function getPermissions() { return KTAPI_Folder::get_permission_string($this->Folder); }
392 376
393 - public function loadDocumentInfo() 377 + public function loadFolderInfo()
394 { 378 {
395 global $default; 379 global $default;
396 - $this->folder = $folder = Folder::get($this->getFolderID()); 380 + $folder = $this->getFolder();
397 if (PEAR::isError($folder)) 381 if (PEAR::isError($folder))
398 { 382 {
399 throw new Exception('Database exception! There appears to be an error in the system: ' .$result->getMessage()); 383 throw new Exception('Database exception! There appears to be an error in the system: ' .$result->getMessage());