/**
  * 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));
 }