diff --git a/mind3rd/API/classes/DAO/Project.php b/mind3rd/API/classes/DAO/Project.php index 37e3c4d..1991bf4 100755 --- a/mind3rd/API/classes/DAO/Project.php +++ b/mind3rd/API/classes/DAO/Project.php @@ -166,7 +166,11 @@ class Project{ ".$this->data['pk_project'].", ".$user['pk_user']." )"; - return $this->db->execute($qr_userProj); + if($this->db->execute($qr_userProj)) + $this->db->execute('COMMIT'); + else + return false; + return true; }else{ return true; //echo "JA TINHA\n"; diff --git a/mind3rd/API/classes/MindProject.php b/mind3rd/API/classes/MindProject.php index 6456456..bd2cc8d 100755 --- a/mind3rd/API/classes/MindProject.php +++ b/mind3rd/API/classes/MindProject.php @@ -118,7 +118,7 @@ class MindProject extends VersionManager{ WHERE pk_project = ".$pk_project; $db= self::getDBConn(); if($db->execute($qr_updProj)) - return true; + return $db->execute('COMMIT'); else return false; }else{ @@ -145,6 +145,7 @@ class MindProject extends VersionManager{ $attr= trim($attr); if(!\in_array($attr, self::$availableAttrs)){ \MindSpeaker::write('invalidCreateParams'); + echo "Available list: ".implode(', ', self::$availableAttrs)."\n"; return false; } @@ -191,21 +192,21 @@ class MindProject extends VersionManager{ public static function listProjects($detailed=false) { $db= new MindDB(); - $hasProject= "SELECT ".($detailed? " pk_project,project.name as name, + $hasProject= "SELECT ".($detailed? " pk_project, p.name as name, info, creator, dt_creation": " distinct pk_project, - project.name as name")." - from project + name")." + from project p "; if(!\API\User::isAdmin()) - $hasProject.= ", project_user - where fk_project = pk_project - and fk_user = ".\API\User::code()." - and project.status='A'"; + $hasProject.= ", project_user pu + where pu.fk_project = p.pk_project + and pu.fk_user = ".\API\User::code()." + and p.status='A'"; else - $hasProject.= " WHERE project.status='A'"; + $hasProject.= " WHERE p.status='A'"; $data= $db->query($hasProject); return $data; @@ -227,10 +228,11 @@ class MindProject extends VersionManager{ $db= new MindDB(); $hasProject= "SELECT pk_project, + creator, project.name as name from project_user, project - where project.name = '".$project."' + where name = '".$project."' and fk_project = pk_project "; diff --git a/mind3rd/API/classes/MindUser.php b/mind3rd/API/classes/MindUser.php index 79b255b..4e74ab4 100755 --- a/mind3rd/API/classes/MindUser.php +++ b/mind3rd/API/classes/MindUser.php @@ -126,13 +126,16 @@ class MindUser * @param boolean $detailed * @return mixed */ - public static function listUsers($detailed=false) + public static function listUsers($detailed=false, $proj= false) { $db= self::getDBConn(); - if($detailed) - $usrs= $db->query('SELECT * from user'); - else - $usrs= $db->query('SELECT login from user'); + $det= $detailed? ' * ': 'login'; + $qr= 'SELECT '.$det.' FROM user'; + if($proj) + $qr.= ", project_user WHERE pk_user = fk_user and fk_project= ".((int)$proj); + + $usrs= $db->query($qr); + return $usrs; } } \ No newline at end of file diff --git a/mind3rd/API/programs/Add.php b/mind3rd/API/programs/Add.php index 662e454..26a6238 100755 --- a/mind3rd/API/programs/Add.php +++ b/mind3rd/API/programs/Add.php @@ -46,15 +46,6 @@ }else{ return false; } - - //var_dump($pF); - //print_r($pF); - //echo $this->project."\n\n"; - //echo "BBBBBBBBB"; - //$pF= new DAO\ProjectFactory(Mind::$currentProject); - - //$user= \API\User::loadUserInfo($this->user); - //print_r(\API\Project::data()); } public function __construct() diff --git a/mind3rd/API/programs/Show.php b/mind3rd/API/programs/Show.php index d7a3fa6..3c0daee 100755 --- a/mind3rd/API/programs/Show.php +++ b/mind3rd/API/programs/Show.php @@ -36,6 +36,7 @@ EOT 'source', 'info', 'data', + 'conf', 'props', 'project', 'properties', @@ -68,7 +69,6 @@ EOT { echo JSON_encode($projectList); }else{ - //foreach($projectList as $proj) $this->printMatrix($projectList); } break; @@ -81,11 +81,24 @@ EOT } break; case 'data': + case 'conf': case 'props': case 'properties': //var_dump($_MIND); $p= \Mind::$currentProject; if($p){ + //$p['users']= Array(); + $p['users']= $this->loadUsersList($p['pk_project']); + /* + //var_dump($users); + $userList= Array(); + + foreach($users as $k=>$user) + { + $userList[$k]= $user; + }*/ + + if($_REQ['env']=='http') echo JSON_encode($p); else{ @@ -94,13 +107,17 @@ EOT if(!\API\User::isAdmin()) continue; } - echo " ".str_pad($k, 16, " ").": ".$v."\n"; + echo " ".str_pad($k, 16, " ").": "; + if(is_array($v)) + echo JSON_encode($v)."\n"; + else + echo $v."\n"; } } }else{ \MindSpeaker::write("currentProjectRequired"); } - // TODO: list users IN THIS project + break; case 'source': $p= \Mind::$currentProject; @@ -235,9 +252,9 @@ EOT $projs= \API\Project::projectList(false); return $projs; } - private function loadUsersList() + private function loadUsersList($proj=false) { - return MindUser::listUsers($this->detailed); + return MindUser::listUsers($this->detailed, $proj); } private function printList($list) {