MTrackWeb/Timeline.php
[web.mtrack] / MTrackWeb / Timeline.php
1 <?php # vim:ts=2:sw=2:et:
2 /* For licensing and copyright terms, see the file named LICENSE */
3
4
5
6
7 require_once 'MTrack/Attachment.php';
8 require_once 'MTrackWeb.php';
9
10 class MTrackWeb_Timeline extends MTrackWeb
11 {
12         
13     var $template = 'wiki.html';
14     var $title = 'Timeline';
15     
16      var $start_time = '-2 weeks';
17     var $limit = 50;
18     // fixme = this should be alot more efficient...
19     
20      
21     
22     function getAuth()
23     {
24         parent::getAuth();
25         MTrackACL::requireAllRights('Timeline', 'read');
26     }
27     
28     
29     function get($only_users)
30     {
31         // perms... 
32         $pid = $this->currentProject();
33         
34         $e = DB_DataObject::factory('mtrack_change');
35         $e->orderBy('changedate DESC');
36         $e->limit(50);
37         
38         $e->whereAdd("
39             ( ontable='mtrack_ticket' AND
40                 onid IN (SELECT id FROM mtrack_ticket where project_id = $pid)
41             )
42         ");
43         
44         $this->events = $e->fetchAll();
45         
46          
47          
48     
49     }
50     
51     function  is_repo_visible($reponame)
52     {
53         static $cache = array();
54         $me = MTrackAuth::whoami();
55         if (isset($cache[$me][$reponame])) {
56             return $cache[$me][$reponame];
57         }
58     
59         if (ctype_digit($reponame)) {
60             $oid = "repo:$reponame";
61         } else {
62             $repo = MTrack_Repo::loadByName($reponame);
63             if ($repo) {
64                 $oid = "repo:$repo->id";
65             } else {
66                 $oid = null;
67             }
68         }
69         if ($oid) {
70             $ok = MTrackACL::hasAnyRights($oid, array(
71             'read', 'checkout'));
72         } else {
73             $ok = false;
74         }
75         $cache[$me][$reponame] = $ok;
76         return $ok;
77     }
78
79 }
80