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'].",
".$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";
+12 -10
Ver Arquivo
@@ -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
";
+8 -5
Ver Arquivo
@@ -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;
}
}
-9
Ver Arquivo
@@ -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()
+22 -5
Ver Arquivo
@@ -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)
{