Commit c560e9501c0664af62c24da7b88914092fd2612d
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
Showing
1 changed file
with
24 additions
and
40 deletions
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()); |