function getOptions($id = null) { if (!$this->model) { $this->model = new waContactCategoryModel(); } if (!$this->categories) { $this->categories = $this->model->getALl('id'); } // Checklist options, category_id => name $options = array(); foreach ($this->categories as $id => $row) { $options[$id] = $row['name']; } // Admins are allowed to see everything, and person outside of contacts app can see a list of categories too if (wa()->getApp() != 'contacts' || wa()->getUser()->getRights('contacts', 'category.all')) { return $options; } // Only load categories available for current user $crm = new contactsRightsModel(); $allowed = $crm->getAllowedCategories(); foreach ($options as $id => $row) { if (!isset($allowed[$id])) { unset($options[$id]); } } return $options; }
public function getInfo() { $info = parent::getInfo(); if (!$this->model) { $this->model = new waContactCategoryModel(); } if (!$this->categories) { $this->categories = $this->model->getALl('id'); } // System categories are disabled $info['disabled'] = array(); foreach ($this->categories as $id => $row) { if ($row['system_id']) { $info['disabled'][$id] = true; } } return $info; }