From 33bb4e600c5da63b260d5348a728fa774efe706c Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Tue, 28 Aug 2012 12:35:19 -0400 Subject: [PATCH 1/4] cc-4274: implemented james' hack to fix this issue. --- airtime_mvc/application/controllers/ApiController.php | 3 ++- airtime_mvc/application/models/StoredFile.php | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/airtime_mvc/application/controllers/ApiController.php b/airtime_mvc/application/controllers/ApiController.php index 0e0f0fd2d..2711825f1 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() diff --git a/airtime_mvc/application/models/StoredFile.php b/airtime_mvc/application/models/StoredFile.php index 3f6152696..f392d7b19 100644 --- a/airtime_mvc/application/models/StoredFile.php +++ b/airtime_mvc/application/models/StoredFile.php @@ -1003,19 +1003,22 @@ 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, $propelObj=false, + $all=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'"; + ." WHERE directory = $dir_id $file_exists"; } $rows = $con->query($sql)->fetchAll(); From 05908d121f347a1a29178e5859ccd72fb3d18459 Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Tue, 28 Aug 2012 13:15:02 -0400 Subject: [PATCH 2/4] cc-4274: Fixed bad table name. --- airtime_mvc/application/controllers/ApiController.php | 5 +++-- airtime_mvc/application/models/StoredFile.php | 7 +++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/airtime_mvc/application/controllers/ApiController.php b/airtime_mvc/application/controllers/ApiController.php index 2711825f1..f8752aa66 100644 --- a/airtime_mvc/application/controllers/ApiController.php +++ b/airtime_mvc/application/controllers/ApiController.php @@ -690,7 +690,7 @@ class ApiController extends Zend_Controller_Action $dir_id = $request->getParam('dir_id'); $this->view->files = - Application_Model_StoredFile::listAllFiles($dir_id, $all=true); + Application_Model_StoredFile::listAllFiles($dir_id,$all=true); } public function listAllWatchedDirsAction() @@ -863,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 f392d7b19..6dac96734 100644 --- a/airtime_mvc/application/models/StoredFile.php +++ b/airtime_mvc/application/models/StoredFile.php @@ -1003,8 +1003,7 @@ 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, - $all=false) + public static function listAllFiles($dir_id=null, $all, $propelObj=false) { $con = Propel::getConnection(); @@ -1017,8 +1016,8 @@ class Application_Model_StoredFile ." 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 $file_exists"; + ." FROM CC_FILES as f" + ." WHERE f.directory = $dir_id $file_exists"; } $rows = $con->query($sql)->fetchAll(); From 5b5ac3e38f38949cda1076c0fbab84ebb7e110da Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Tue, 28 Aug 2012 16:22:35 -0400 Subject: [PATCH 3/4] cc-4274: Added scaffolding to implement this feature. --- airtime_mvc/application/models/User.php | 13 +++++++++++++ airtime_mvc/application/models/airtime/CcFiles.php | 3 +++ 2 files changed, 16 insertions(+) diff --git a/airtime_mvc/application/models/User.php b/airtime_mvc/application/models/User.php index 524a8df19..dc674aa3b 100644 --- a/airtime_mvc/application/models/User.php +++ b/airtime_mvc/application/models/User.php @@ -230,6 +230,19 @@ class Application_Model_User $this->_userInstance->delete(); } } + public function getOwnedFiles() + { + $user = $this->_userInstance; + return $user->getCcFilessRelatedByDbOwnerId(); + } + + public function donateFilesTo($user) + { + $my_files = $this->getOwnedFiles(); + foreach ($my_files as $file) { + $file->reassignTo($user); + } + } 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 From 6487072a4ef7c2ed88cbfafd4103984e83c06ddc Mon Sep 17 00:00:00 2001 From: Rudi Grinberg Date: Tue, 28 Aug 2012 17:24:55 -0400 Subject: [PATCH 4/4] cc-4274: added stub --- airtime_mvc/application/models/User.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/airtime_mvc/application/models/User.php b/airtime_mvc/application/models/User.php index dc674aa3b..ed67641b5 100644 --- a/airtime_mvc/application/models/User.php +++ b/airtime_mvc/application/models/User.php @@ -233,6 +233,7 @@ class Application_Model_User public function getOwnedFiles() { $user = $this->_userInstance; + // do we need a find call at the end here? return $user->getCcFilessRelatedByDbOwnerId(); } @@ -244,6 +245,11 @@ class Application_Model_User } } + public function deleteAllFiles() + { + $my_files = $this->getOwnedFiles(); + } + private function createUser() { $user = new CcSubjs();