php8
[web.mtrack] / MTrackWeb / Roo.php
index ebed08a..7eddfe1 100644 (file)
@@ -20,11 +20,11 @@ class MTrackWeb_Roo extends Pman_Roo
         'Mtrack_ticket', /// all of these MUST have applyFilters, and check authenication..
         'mtrack_change',
         'core_enum',
-        'Person',
+        //'Person',  // fixme - need to verify this is protected..
         'mtrack_milestone',
-        'Projects',
-        'Images',
-        'mtrack_repos'
+        'core_project',  // fixme - we should remove code from projects....
+        'Images',   // not sure about this...
+        'mtrack_repos'   // not sure about this...
         
     );
     
@@ -39,11 +39,61 @@ class MTrackWeb_Roo extends Pman_Roo
         return true;
     }
     
-    function delete()
+    function delete($c, $req)
     {
         $this->jerr("Delete not permitted yet...");
         // only post requests..???
         // need perms sorting out first.
     }
     
-}
\ No newline at end of file
+    function checkPerm($obj, $lvl, $req=null)
+    {
+        //if ($this->authUser) {
+            $res = parent::checkPerm($obj,$lvl,$req);
+            
+            if ($res) {
+                return $res;
+            }
+        //}
+        // not authenticated...
+         
+        // these checks only apply to non-company users.
+        
+        // normally allowed, but we have more restrictions...
+        switch($obj->tablename()) {
+            
+            case 'core_enum':
+                if (empty($req['etype'])) {
+                    return false;
+                }
+                if ($lvl != 'S') {
+                    return false;
+                }
+                
+                switch ($req['etype']) {
+                     case 'classification':
+                    case 'severity':
+                    case 'resolution':
+                    case 'priority':
+                    case 'ticketstate':                    
+                     
+                    
+                    // not a member of the company..
+                    // not allowed in..
+                        return true;
+                    default:
+                        return false;
+                }
+                break; // should not get here...
+            
+            default:
+                return false;
+                
+            
+            
+        }
+        
+    }
+     
+    
+}