class MTrackWeb_Roo extends Pman_Roo
{
- var $validTables = array('mtrack_ticket');
-
- function getAuth()
- {
- return true;
+ var $validTables = array(
+ 'mtrack_ticket', /// all of these MUST have applyFilters, and check authenication..
+ 'Mtrack_ticket', /// all of these MUST have applyFilters, and check authenication..
+ 'mtrack_change',
+ 'core_enum',
+ 'Person',
+ 'mtrack_milestone',
+ 'Projects',
+ 'Images',
+ 'mtrack_repos'
+ );
+
+ function getAuth() {
+ Pman::getAuth(); // load company!
+ $au = $this->getAuthUser();
+ $this->authUser = false;
+ if ($au) {
+ $this->authUser = $au;
+ }
+ return true;
}
- function get($tbl)
+ function delete()
{
- if (!in_array($tbl,$this->validTables)) {
- $this->jerr("Invalid url");
- }
- return parent::get($tbl);
+ $this->jerr("Delete not permitted yet...");
+ // only post requests..???
+ // need perms sorting out first.
}
- function post($table)
+
+ function checkPerm($obj, $lvl, $req=null)
{
- if (!in_array($tbl,$this->validTables)) {
- $this->jerr("Invalid url");
+ if ($this->authUser) {
+ $res = parent::checkPerm($obj,$lvl,$req);
+
+ if ($res) {
+ return $res;
+ }
}
- return parent::post($tbl);
-
+ // 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;
+
+
+
+ }
+
+
+
}
-
-}
\ No newline at end of file
+}