Blame view

sources/apps/documents/lib/storage.php 1.73 KB
923852aa1   Kload   Official Owncloud...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
  <?php
  
  /**
   * ownCloud - Documents App
   *
   * @author Frank Karlitschek
   * @copyright 2012 Frank Karlitschek frank@owncloud.org
   * 
   * This library is free software; you can redistribute it and/or
   * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
   * License as published by the Free Software Foundation; either 
   * version 3 of the License, or any later version.
   * 
   * This library is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
   *  
   * You should have received a copy of the GNU Lesser General Public 
   * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
   * 
   */
  
  
  namespace OCA\Documents;
  
  class Storage {
  
  	public static function getDocuments() {
  		$list = array_filter(
  				\OCP\Files::searchByMime('application/vnd.oasis.opendocument.text'),
  				function($item){
  					//filter Deleted
  					if (strpos($item['path'], '_trashbin')===0){
  						return false;
  					}
  					return true;
  				}
  		);
  		
  		return $list;
  	}
  	
  	/**
  	 * @brief Cleanup session data on removing the document
  	 * @param array
  	 *
  	 * This function is connected to the delete signal of OC_Filesystem
  	 * to delete the related info from database
  	 */
  	public static function onDelete($params) {
  		$info = \OC\Files\Filesystem::getFileInfo($params['path']);
  		
  		$fileId = @$info['fileid'];
  		if (!$fileId){
  			return;
  		}
  		
  		$sessionObj = new Db_Session();
  		$session = $sessionObj
  					->loadBy('file_id', $fileId)
  					->getData()
  				;
  
  		if (!is_array($session) || !isset($session['es_id'])){
  			return;
  		}
  		
  		Db_Session::cleanUp($session['es_id']);
  	}
  }