MTrackWeb/Project.php
[web.mtrack] / MTrackWeb / Project.php
1 <?php
2 require_once 'MTrackWeb.php';
3
4 class MTrackWeb_Project extends MTrackWeb
5 {
6     
7     //function getAuth-- inherit
8     
9     function get($code='') {
10         
11         if (isset($_REQUEST['active_project_id'])) {
12             $this->currentProject($_REQUEST['active_project_id']);
13             return $this->jok($this->currentProject());
14         }
15         
16         if (!isset($_REQUEST['ajax_body'])) {
17             return;
18         }
19         $this->masterTemplate = 'project.html';
20          
21         $p = DB_DataObject::factory('Projects');
22         $p->get( $this->currentProject());
23         $this->project = $p;
24         
25         /// milestones..
26         
27         $this->milestones = $this->project->milestones();
28         
29         
30         
31         // compoennts...
32         
33         
34         // permissions..
35         if (!$this->authUser) {
36             return;
37         }
38         
39         // fetch permissions.
40         $gr = DB_DataObject::factory('Group_Rights');
41         $ar = $gr->defaultPermData();
42         //echo '<PRE>';print_r($ar);
43         $perms = array();
44         foreach($ar as $nm=>$data) {
45             if (!preg_match('/^MTrack\./', $nm)) {
46                 continue;
47             }
48             $perms[] = $nm; 
49                 
50         }
51         $gr = DB_DataObject::factory('Group_Rights');
52         $gr->whereAdd('rightname', $perms, 'string');
53         $gr->selectAdd();
54         
55         $gr->selectAdd('distinct(group_id) as group_id');
56         $gr->whereAdd("AccessMask != ''");
57         $gids = $gr->fetchAll('group_id');
58         print_R($gids);
59         
60         
61         
62         // find out which groups are using those perms... so that we can offer membership to people..
63         
64         
65         
66         
67         // members... (might be large one day)
68         $pr = DB_DataObject::Factory('ProjectDirectory');
69         $pr->project_id = $this->currentProject();
70         //$pr->autoJoin();
71         
72         if ($this->authUser->company()->comptype !='OWNER') {
73             $pr->whereAdd("role=''");
74         }
75         $ar  = $pr->fetchAll();
76         foreach($ar as $pd) {
77             $pd->person = $pd->person();
78             $pd->person->perms = $pd->person->getPerms();
79             $pd->person->groups = $pd->person->groups();
80             $this->people[] = $pd;
81         }
82         
83         
84         
85     }
86     
87 }