Added the list of users to the command 'show data' for projects;

Fixed problems with user_project relations;
Fixed problems with 'set' command for projects;
Esse commit está contido em:
Felipe N. Moura
2012-06-30 15:59:36 -03:00
commit 83cb738ad5
5 arquivos alterados com 47 adições e 30 exclusões
+5 -1
Ver Arquivo
@@ -166,7 +166,11 @@ class Project{
".$this->data['pk_project'].", ".$this->data['pk_project'].",
".$user['pk_user']." ".$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{ }else{
return true; return true;
//echo "JA TINHA\n"; //echo "JA TINHA\n";
+12 -10
Ver Arquivo
@@ -118,7 +118,7 @@ class MindProject extends VersionManager{
WHERE pk_project = ".$pk_project; WHERE pk_project = ".$pk_project;
$db= self::getDBConn(); $db= self::getDBConn();
if($db->execute($qr_updProj)) if($db->execute($qr_updProj))
return true; return $db->execute('COMMIT');
else else
return false; return false;
}else{ }else{
@@ -145,6 +145,7 @@ class MindProject extends VersionManager{
$attr= trim($attr); $attr= trim($attr);
if(!\in_array($attr, self::$availableAttrs)){ if(!\in_array($attr, self::$availableAttrs)){
\MindSpeaker::write('invalidCreateParams'); \MindSpeaker::write('invalidCreateParams');
echo "Available list: ".implode(', ', self::$availableAttrs)."\n";
return false; return false;
} }
@@ -191,21 +192,21 @@ class MindProject extends VersionManager{
public static function listProjects($detailed=false) public static function listProjects($detailed=false)
{ {
$db= new MindDB(); $db= new MindDB();
$hasProject= "SELECT ".($detailed? " pk_project,project.name as name, $hasProject= "SELECT ".($detailed? " pk_project, p.name as name,
info, creator, info, creator,
dt_creation": dt_creation":
" distinct pk_project, " distinct pk_project,
project.name as name")." name")."
from project from project p
"; ";
if(!\API\User::isAdmin()) if(!\API\User::isAdmin())
$hasProject.= ", project_user $hasProject.= ", project_user pu
where fk_project = pk_project where pu.fk_project = p.pk_project
and fk_user = ".\API\User::code()." and pu.fk_user = ".\API\User::code()."
and project.status='A'"; and p.status='A'";
else else
$hasProject.= " WHERE project.status='A'"; $hasProject.= " WHERE p.status='A'";
$data= $db->query($hasProject); $data= $db->query($hasProject);
return $data; return $data;
@@ -227,10 +228,11 @@ class MindProject extends VersionManager{
$db= new MindDB(); $db= new MindDB();
$hasProject= "SELECT pk_project, $hasProject= "SELECT pk_project,
creator,
project.name as name project.name as name
from project_user, from project_user,
project project
where project.name = '".$project."' where name = '".$project."'
and fk_project = pk_project and fk_project = pk_project
"; ";
+8 -5
Ver Arquivo
@@ -126,13 +126,16 @@ class MindUser
* @param boolean $detailed * @param boolean $detailed
* @return mixed * @return mixed
*/ */
public static function listUsers($detailed=false) public static function listUsers($detailed=false, $proj= false)
{ {
$db= self::getDBConn(); $db= self::getDBConn();
if($detailed) $det= $detailed? ' * ': 'login';
$usrs= $db->query('SELECT * from user'); $qr= 'SELECT '.$det.' FROM user';
else if($proj)
$usrs= $db->query('SELECT login from user'); $qr.= ", project_user WHERE pk_user = fk_user and fk_project= ".((int)$proj);
$usrs= $db->query($qr);
return $usrs; return $usrs;
} }
} }
-9
Ver Arquivo
@@ -46,15 +46,6 @@
}else{ }else{
return false; 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() public function __construct()
+22 -5
Ver Arquivo
@@ -36,6 +36,7 @@ EOT
'source', 'source',
'info', 'info',
'data', 'data',
'conf',
'props', 'props',
'project', 'project',
'properties', 'properties',
@@ -68,7 +69,6 @@ EOT
{ {
echo JSON_encode($projectList); echo JSON_encode($projectList);
}else{ }else{
//foreach($projectList as $proj)
$this->printMatrix($projectList); $this->printMatrix($projectList);
} }
break; break;
@@ -81,11 +81,24 @@ EOT
} }
break; break;
case 'data': case 'data':
case 'conf':
case 'props': case 'props':
case 'properties': case 'properties':
//var_dump($_MIND); //var_dump($_MIND);
$p= \Mind::$currentProject; $p= \Mind::$currentProject;
if($p){ 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') if($_REQ['env']=='http')
echo JSON_encode($p); echo JSON_encode($p);
else{ else{
@@ -94,13 +107,17 @@ EOT
if(!\API\User::isAdmin()) if(!\API\User::isAdmin())
continue; 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{ }else{
\MindSpeaker::write("currentProjectRequired"); \MindSpeaker::write("currentProjectRequired");
} }
// TODO: list users IN THIS project
break; break;
case 'source': case 'source':
$p= \Mind::$currentProject; $p= \Mind::$currentProject;
@@ -235,9 +252,9 @@ EOT
$projs= \API\Project::projectList(false); $projs= \API\Project::projectList(false);
return $projs; 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) private function printList($list)
{ {