/** * Toggle the 'Official' value on an addon. * * @param int $AddonID Addon in question. * @throws Exception Addon not found. */ public function official($AddonID = '') { $this->permission('Addons.Addon.Manage'); $transientKey = Gdn::request()->get('TransientKey', false); if (!Gdn::session()->isValid() || !Gdn::session()->validateTransientKey($transientKey)) { throw new Gdn_UserException('The CSRF token is invalid.', 403); } $Addon = $this->Addon = $this->AddonModel->getID($AddonID); if (!is_array($Addon)) { throw notFoundException('Addon'); } $NewValue = val('Official', $Addon, '0') ? '0' : '1'; $this->AddonModel->update(array('Official' => $NewValue), array('AddonID' => val('AddonID', $Addon))); safeRedirect('/addon/' . AddonModel::slug($Addon)); }