diff --git a/airtime_mvc/application/controllers/ApiController.php b/airtime_mvc/application/controllers/ApiController.php index 0e0f0fd2d..f8752aa66 100644 --- a/airtime_mvc/application/controllers/ApiController.php +++ b/airtime_mvc/application/controllers/ApiController.php @@ -689,7 +689,8 @@ class ApiController extends Zend_Controller_Action $request = $this->getRequest(); $dir_id = $request->getParam('dir_id'); - $this->view->files = Application_Model_StoredFile::listAllFiles($dir_id); + $this->view->files = + Application_Model_StoredFile::listAllFiles($dir_id,$all=true); } public function listAllWatchedDirsAction() @@ -862,7 +863,8 @@ class ApiController extends Zend_Controller_Action $watchDir = Application_Model_MusicDir::getDirByPath($rd); // get all the files that is under $dirPath - $files = Application_Model_StoredFile::listAllFiles($dir->getId(), true); + $files = Application_Model_StoredFile::listAllFiles( + $dir->getId(),$all=false, true); foreach ($files as $f) { // if the file is from this mount if (substr($f->getFilePath(), 0, strlen($rd)) === $rd) { diff --git a/airtime_mvc/application/models/StoredFile.php b/airtime_mvc/application/models/StoredFile.php index 3f6152696..6dac96734 100644 --- a/airtime_mvc/application/models/StoredFile.php +++ b/airtime_mvc/application/models/StoredFile.php @@ -1003,19 +1003,21 @@ class Application_Model_StoredFile * @param $dir_id - if this is not provided, it returns all files with full path constructed. * @param $propelObj - if this is true, it returns array of proepl obj */ - public static function listAllFiles($dir_id=null, $propelObj=false) + public static function listAllFiles($dir_id=null, $all, $propelObj=false) { $con = Propel::getConnection(); + $file_exists = $all ? "" : "and f.file_exists = 'TRUE'"; + if ($propelObj) { $sql = "SELECT m.directory || f.filepath as fp" ." FROM CC_MUSIC_DIRS m" ." LEFT JOIN CC_FILES f" - ." ON m.id = f.directory WHERE m.id = $dir_id and f.file_exists = 'TRUE'"; + ." ON m.id = f.directory WHERE m.id = $dir_id $file_exists"; } else { $sql = "SELECT filepath as fp" - ." FROM CC_FILES" - ." WHERE directory = $dir_id and file_exists = 'TRUE'"; + ." FROM CC_FILES as f" + ." WHERE f.directory = $dir_id $file_exists"; } $rows = $con->query($sql)->fetchAll(); diff --git a/airtime_mvc/application/models/User.php b/airtime_mvc/application/models/User.php index 524a8df19..ed67641b5 100644 --- a/airtime_mvc/application/models/User.php +++ b/airtime_mvc/application/models/User.php @@ -230,6 +230,25 @@ class Application_Model_User $this->_userInstance->delete(); } } + public function getOwnedFiles() + { + $user = $this->_userInstance; + // do we need a find call at the end here? + return $user->getCcFilessRelatedByDbOwnerId(); + } + + public function donateFilesTo($user) + { + $my_files = $this->getOwnedFiles(); + foreach ($my_files as $file) { + $file->reassignTo($user); + } + } + + public function deleteAllFiles() + { + $my_files = $this->getOwnedFiles(); + } private function createUser() { diff --git a/airtime_mvc/application/models/airtime/CcFiles.php b/airtime_mvc/application/models/airtime/CcFiles.php index 58f79ee67..0e17aef74 100644 --- a/airtime_mvc/application/models/airtime/CcFiles.php +++ b/airtime_mvc/application/models/airtime/CcFiles.php @@ -40,5 +40,8 @@ class CcFiles extends BaseCcFiles { return $this; } + public function reassignTo($user) { + $this->setDbOwnerId( $user->getDbId() ); + } } // CcFiles