Merge branch 'bug-649' into testserver-stable
authorBenny Baumann <BenBE@geshi.org>
Tue, 2 Jun 2015 18:54:09 +0000 (20:54 +0200)
committerBenny Baumann <BenBE@geshi.org>
Tue, 2 Jun 2015 18:54:09 +0000 (20:54 +0200)
1  2 
includes/notary.inc.php

@@@ -1666,759 -1166,5 +1666,759 @@@ function write_se_log($uid, $adminid, $
        $typeid = intval($typeid);
        $query="insert into `adminlog` (`when`, `uid`, `adminid`,`type`,`information`,`actiontypeid`) values
                (Now(), $uid, $adminid, '$type', '$info', '$typeid')";
-       mysql_query($query);
+       return mysql_query($query);
  }
 +
 +/**
 + * Check if the entered information is a valid ticket or arbitration number
 + * @param string $ticketno
 + * @return bool
 + */
 +function valid_ticket_number($ticketno){
 +      //a arbitration case
 +      //d dispute action
 +      //s support case
 +      //m board motion
 +      $pattern='/[adsmADSM]\d{8}\.\d+/';
 +      if (preg_match($pattern, $ticketno)) {
 +              return true;
 +      }
 +      return false;
 +}
 +
 +// function for handling account/43.php
 +/**
 + * Get all data of an account given by the id from the `users` table
 + * @param int $userid - account id
 + * @param int $deleted - states if deleted data should be visible , default = 0 - not visible
 + * @return resource - a mysql result set
 + */
 +function get_user_data($userid, $deleted=0){
 +      $userid = intval($userid);
 +      $filter='';
 +      if (0==$deleted) {
 +              $filter .=' and `users`.`deleted`=0';
 +      }
 +      $query = "select * from `users` where `users`.`id`='$userid' ".$filter;
 +      return mysql_query($query);
 +}
 +
 +/**
 + * Get the alert settings for a user
 + * @param int $userid for the requested account
 + * @return array - associative array
 + */
 +function get_alerts($userid){
 +      return mysql_fetch_assoc(mysql_query("select * from `alerts` where `memid`='".intval($userid)."'"));
 +}
 +
 +/**
 + * Get all email addresses linked to the account
 + * @param int    $userid
 + * @param string $exclude - if given the email address will be excluded
 + * @param int    $deleted - states if deleted data should be visible, default = 0 - not visible
 + * @return resource - a mysql result set
 + */
 +function get_email_addresses($userid, $exclude, $deleted=0){
 +      //should be entered in account/2.php
 +      $userid = intval($userid);
 +      $filter='';
 +      if (0==$deleted) {
 +              $filter .= ' and `deleted`=0';
 +      }
 +      if ($exclude) {
 +              $filter .= " and `email`!='".mysql_real_escape_string($exclude)."'";
 +      }
 +      $query = "select * from `email` where `memid`='".$userid."' and `hash`='' ".$filter." order by `created`";
 +      return mysql_query($query);
 +}
 +
 +/**
 + * Get all domains linked to the account
 + * @param int $userid
 + * @param int $deleted - states if deleted data should be visible, default = 0 - not visible
 + * @return resource - a mysql result set
 + */
 +function get_domains($userid, $deleted=0){
 +      //should be entered in account/9.php
 +      $userid = intval($userid);
 +      $filter='';
 +      if (0==$deleted) {
 +              $filter .= ' and `deleted`=0';
 +      }
 +      $query = "select * from `domains` where `memid`='".$userid."' and `hash`=''".$filter." order by `created`";
 +      return mysql_query($query);
 +}
 +
 +/**
 + * Get all training results for the account
 + * @param int $userid
 + * @return resource - a mysql result set
 + */
 +function get_training_results($userid){
 +      //should be entered in account/55.php
 +      $userid = intval($userid);
 +      $query = "SELECT `CP`.`pass_date`, `CT`.`type_text`, `CV`.`test_text` ".
 +              " FROM `cats_passed` AS CP, `cats_variant` AS CV, `cats_type` AS CT ".
 +              " WHERE `CP`.`variant_id`=`CV`.`id` AND `CV`.`type_id`=`CT`.`id` AND `CP`.`user_id` ='".$userid."'".
 +              " ORDER BY `CP`.`pass_date`";
 +      return mysql_query($query);
 +}
 +
 +/**
 + * Get all SE log entries for the account
 + * @param int $userid
 + * @return resource - a mysql result set
 + */
 +function get_se_log($userid){
 +      $userid = intval($userid);
 +      $query = "SELECT `adminlog`.`when`, `adminlog`.`type`, `adminlog`.`information`, `users`.`fname`, `users`.`lname`
 +              FROM `adminlog`, `users`
 +              WHERE `adminlog`.`adminid` = `users`.`id` and `adminlog`.`uid`=".$userid."
 +              ORDER BY `adminlog`.`when`";
 +      return mysql_query($query);
 +}
 +
 +/**
 + * Get all client certificates linked to the account
 + * @param int $userid
 + * @param int $viewall - states if expired certs should be visible, default = 0 - not visible
 + * @return resource - a mysql result set
 + */
 +function get_client_certs($userid, $viewall=0){
 +      //add to account/5.php
 +      $userid = intval($userid);
 +      $query = "select UNIX_TIMESTAMP(`emailcerts`.`created`) as `created`,
 +              UNIX_TIMESTAMP(`emailcerts`.`expire`) - UNIX_TIMESTAMP() as `timeleft`,
 +              UNIX_TIMESTAMP(`emailcerts`.`expire`) as `expired`,
 +              `emailcerts`.`expire`,
 +              `emailcerts`.`revoked` as `revoke`,
 +              UNIX_TIMESTAMP(`emailcerts`.`revoked`) as `revoked`,
 +              `emailcerts`.`id`,
 +              `emailcerts`.`CN`,
 +              `emailcerts`.`serial`,
 +              `emailcerts`.`disablelogin`,
 +              `emailcerts`.`description`
 +              from `emailcerts`
 +              where `emailcerts`.`memid`='".$userid."'";
 +      if($viewall == 0)
 +      {
 +              $query .= " AND `emailcerts`.`revoked`=0 AND `emailcerts`.`renewed`=0";
 +              $query .= " HAVING `timeleft` > 0";
 +      }
 +      $query .= " ORDER BY `emailcerts`.`modified` desc";
 +      return mysql_query($query);
 +}
 +
 +/**
 + * Get all server certs linked to the account
 + * @param int $userid
 + * @param int $viewall - states if expired certs should be visible, default = 0 - not visible
 + * @return resource - a mysql result set
 + */
 +function get_server_certs($userid, $viewall=0){
 +      //add to account/12.php
 +      $userid = intval($userid);
 +      $query = "select UNIX_TIMESTAMP(`domaincerts`.`created`) as `created`,
 +                      UNIX_TIMESTAMP(`domaincerts`.`expire`) - UNIX_TIMESTAMP() as `timeleft`,
 +                      UNIX_TIMESTAMP(`domaincerts`.`expire`) as `expired`,
 +                      `domaincerts`.`expire`,
 +                      `domaincerts`.`revoked` as `revoke`,
 +                      UNIX_TIMESTAMP(`revoked`) as `revoked`,
 +                      `domaincerts`.`CN`,
 +                      `domaincerts`.`serial`,
 +                      `domaincerts`.`id`,
 +                      `domaincerts`.`description`
 +                      from `domaincerts`,`domains`
 +                      where `domains`.`memid`='".$userid."' and `domaincerts`.`domid`=`domains`.`id`";
 +      if($viewall == 0)
 +      {
 +              $query .= " AND `domaincerts`.`revoked`=0 AND `domaincerts`.`renewed`=0";
 +              $query .= " HAVING `timeleft` > 0";
 +      }
 +      $query .= " ORDER BY `domaincerts`.`modified` desc";
 +      return mysql_query($query);
 +}
 +
 +/**
 + * Get all gpg certs linked to the account
 + * @param int $userid
 + * @param int $viewall - states if expired certs should be visible, default = 0 - not visible
 + * @return resource - a mysql result set
 + */
 +function get_gpg_certs($userid, $viewall=0){
 +      //add to gpg/2.php
 +      $userid = intval($userid);
 +      $query = $query = "select UNIX_TIMESTAMP(`issued`) as `issued`,
 +                      UNIX_TIMESTAMP(`expire`) - UNIX_TIMESTAMP() as `timeleft`,
 +                      UNIX_TIMESTAMP(`expire`) as `expired`,
 +                      `expire`, `id`, `level`, `email`, `keyid`, `description`
 +                      from `gpg` where `memid`='".$userid."'";
 +      if ($viewall == 0) {
 +              $query .= " HAVING `timeleft` > 0";
 +      }
 +      $query .= " ORDER BY `issued` desc";
 +      return mysql_query($query);
 +}
 +
 +
 +
 +/**
 + * Show the table header to the email table for the admin log
 + */
 +function output_log_email_header(){
 +      ?>
 +      <tr>
 +              <td class="DataTD bold"><?= _("Email, primary bold") ?></td>
 +              <td class="DataTD bold"><?= _("Created") ?></td>
 +              <td class="DataTD bold"><?= _("Deleted") ?></td>
 +      </tr>
 +
 +      <?
 +}
 +/**
 + * Show all email data for the admin log
 + * @param array  $row - associative array containing the column data
 + * @param string $primary - if given the primary address is highlighted
 + */
 +function output_log_email($row, $primary){
 +      $style = '';
 +      if ($row['deleted'] !== NULL_DATETIME) {
 +              $style = ' deletedemailaddress';
 +      } elseif ($primary == $row['email']) {
 +              $style = ' primaryemailaddress';
 +      }
 +      ?>
 +      <tr>
 +              <td class="DataTD<?=$style?>"><?=$row['email']?></td>
 +              <td class="DataTD<?=$style?>"><?=$row['created']?></td>
 +              <td class="DataTD<?=$style?>"><?=$row['deleted']?></td>
 +      </tr>
 +      <?
 +}
 +
 +/**
 + * Show the table header to the domains table for the admin log
 + */
 +function output_log_domains_header(){
 +      ?>
 +      <tr>
 +              <td class="DataTD bold"><?= _("Domain") ?></td>
 +              <td class="DataTD bold"><?= _("Created") ?></td>
 +              <td class="DataTD bold"><?= _("Deleted") ?></td>
 +      </tr>
 +
 +      <?
 +}
 +
 +/**
 + * Show the domain data for the admin log
 + * @param array $row - associative array containing the column data
 + */
 +function output_log_domains($row){
 +      $italic='';
 +      if ($row['deleted'] !== NULL_DATETIME) {
 +              $italic=' italic';
 +      }
 +      ?>
 +      <tr>
 +              <td class="DataTD<?=$italic?>"><?=$row['domain']?></td>
 +              <td class="DataTD<?=$italic?>"><?=$row['created']?></td>
 +              <td class="DataTD<?=$italic?>"><?=$row['deleted']?></td>
 +      </tr>
 +      <?
 +}
 +
 +/**
 + * Show the table header to the user agreement table for the admin log
 + */
 +function output_log_agreement_header(){
 +      ?>
 +      <tr>
 +              <td class="DataTD bold"><?= _("Agreement") ?></td>
 +              <td class="DataTD bold"><?= _("Date") ?></td>
 +              <td class="DataTD bold"><?= _("Method") ?></td>
 +              <td class="DataTD bold"><?= _("Active ") ?></td>
 +      </tr>
 +      <?
 +}
 +
 +/**
 + * Show the agreement data for the admin log
 + * @param array $row - associative array containing the column data
 + */
 +function output_log_agreement($row){
 +      ?>
 +      <tr>
 +              <td class="DataTD" ><?=$row['document']?></td>
 +              <td class="DataTD" ><?=$row['date']?></td>
 +              <td class="DataTD" ><?=$row['method']?></td>
 +              <td class="DataTD"><?= ($row['active']==0)? _('passive'):_('active')?></td>
 +      </tr>
 +      <?
 +}
 +
 +/**
 + * Show the table header to the training table
 + */
 +function output_log_training_header(){
 +      //should be entered in account/55.php
 +      ?>
 +      <tr>
 +              <td class="DataTD bold"><?= _("Agreement") ?></td>
 +              <td class="DataTD bold"><?= _("Test") ?></td>
 +              <td class="DataTD bold"><?= _("Variant") ?></td>
 +      </tr>
 +      <?
 +}
 +
 +/**
 + * Show the training data
 + * @param array $row - associative array containing the column data
 + */
 +function output_log_training($row){
 +      //should be entered in account/55.php
 +      ?>
 +      <tr>
 +              <td class="DataTD"><?=$row['pass_date']?></td>
 +              <td class="DataTD"><?=$row['type_text']?></td>
 +              <td class="DataTD"><?=$row['test_text']?></td>
 +      </tr>
 +      <?
 +}
 +
 +/**
 + * Show the table header to the SE log table for the admin log
 + * @param int $support - if support = 1 more information is visible
 + */
 +function output_log_se_header($support=0){
 +      ?>
 +      <tr>
 +              <td class="DataTD bold"><?= _("Date") ?></td>
 +              <td class="DataTD bold"><?= _("Type") ?></td>
 +              <?
 +              if (1 == $support) {
 +                      ?>
 +                      <td class="DataTD bold"><?= _("Information") ?></td>
 +                      <td class="DataTD bold"><?= _("Admin") ?></td>
 +                      <?
 +              }
 +              ?>
 +      </tr>
 +      <?
 +}
 +
 +/**
 + * Show the SE log data for the admin log
 + * @param array $row - associative array containing the column data
 + * @param int   $support - if support = 1 more information is visible
 + */
 +function output_log_se($row, $support=0){
 +      //should be entered in account/55.php
 +      ?>
 +      <tr>
 +              <td class="DataTD"><?=$row['when']?></td>
 +              <td class="DataTD"><?=$row['type']?></td>
 +              <?
 +              if (1 == $support) {
 +                      ?>
 +                      <td class="DataTD"><?=$row['information']?></td>
 +                      <td class="DataTD"><?=$row['fname'].' '.$row['lname']?></td>
 +                      <?
 +              }
 +              ?>
 +      </tr>
 +      <?
 +}
 +
 +/**
 + * Shows the table header to the client cert table
 + * @param int  $support - if support = 1 some columns ar not visible
 + * @param bool $readonly - whether elements to modify data should be hidden, default is `true`
 + */
 +function output_client_cert_header($support=0, $readonly=true){
 +      //should be added to account/5.php
 +      ?>
 +      <tr>
 +              <?
 +              if (!$readonly) {
 +                      ?>
 +                      <td class="DataTD"><?=_("Renew/Revoke/Delete")?></td>
 +                      <?
 +              }
 +              ?>
 +              <td class="DataTD"><?=_("Status")?></td>
 +              <td class="DataTD"><?=_("Email Address")?></td>
 +              <td class="DataTD"><?=_("SerialNumber")?></td>
 +              <td class="DataTD"><?=_("Revoked")?></td>
 +              <td class="DataTD"><?=_("Expires")?></td>
 +              <td class="DataTD"><?=_("Login")?></td>
 +              <?
 +              if (1 != $support) {
 +                      ?>
 +                      <td colspan="2" class="DataTD"><?=_("Comment *")?></td>
 +                      <?
 +              }
 +              ?>
 +      </tr>
 +      <?
 +}
 +
 +/**
 + * Show the client cert data
 + * @param array $row - associative array containing the column data
 + * @param int   $support - if support = 1 some columns are not visible
 + * @param bool  $readonly - whether elements to modify data should be hidden, default is `true`
 + */
 +function output_client_cert($row, $support=0, $readonly=true){
 +      //should be entered in account/5.php
 +      $verified="";
 +      if ($row['timeleft'] > 0) {
 +              $verified = _("Valid");
 +      } else {
 +              $verified = _("Expired");
 +      }
 +
 +      if ($row['expired'] == 0) {
 +              $verified = _("Pending");
 +      }
 +
 +      if ($row['revoked'] == 0) {
 +              $row['revoke'] = _("Not Revoked");
 +      } else {
 +              $verified = _("Revoked");
 +      }
 +
 +      ?>
 +      <tr>
 +      <?
 +      if (!$readonly) {
 +              if ($verified === _("Pending")) {
 +                      ?>
 +                      <td class="DataTD">
 +                              <input type="checkbox" name="delid[]" value="<?=intval($row['id'])?>">
 +                      </td>
 +                      <?
 +
 +              } elseif ($verified === _("Revoked")) {
 +                      ?>
 +                      <td class="DataTD">&nbsp;</td>
 +                      <?
 +
 +              } else {
 +                      ?>
 +                      <td class="DataTD">
 +                              <input type="checkbox" name="revokeid[]" value="<?=intval($row['id'])?>">
 +                      </td>
 +                      <?
 +              }
 +      }
 +
 +      ?>
 +      <td class="DataTD"><?=$verified?></td>
 +      <?
 +
 +      if ($verified === _("Pending")) {
 +              ?>
 +              <td class="DataTD"><?=(trim($row['CN'])=="" ? _("empty") : htmlspecialchars($row['CN']))?></td>
 +              <?
 +      } else {
 +              ?>
 +              <td class="DataTD">
 +                      <a href="account.php?id=6&amp;cert=<?=intval($row['id'])?>">
 +                              <?=(trim($row['CN'])=="" ? _("empty") : htmlspecialchars($row['CN']))?>
 +                      </a>
 +              </td>
 +              <?
 +      }
 +
 +      ?>
 +      <td class="DataTD"><?=$row['serial']?></td>
 +      <td class="DataTD"><?=$row['revoke']?></td>
 +      <td class="DataTD"><?=$row['expire']?></td>
 +      <td class="DataTD">
 +              <input type="checkbox" name="disablelogin_<?=intval($row['id'])?>" value="1" <?=$row['disablelogin']?"":"checked='checked'"?> <?=$readonly?'disabled="disabled"':''?>/>
 +              <input type="hidden" name="cert_<?=intval($row['id'])?>" value="1" />
 +      </td>
 +      <?
 +
 +      if (1 != $support) {
 +              ?>
 +              <td class="DataTD">
 +                      <input name="comment_<?=intval($row['id'])?>" type="text" value="<?=htmlspecialchars($row['description'])?>" />
 +              </td>
 +              <?
 +              if (!$readonly) {
 +                      ?>
 +                      <td class="DataTD">
 +                              <input type="checkbox" name="check_comment_<?=intval($row['id'])?>" />
 +                      </td>
 +                      <?
 +              }
 +      }
 +
 +      ?>
 +      </tr>
 +      <?
 +}
 +
 +/**
 + * Show the table header to the server cert table
 + * @param int  $support - if support = 1 some columns ar not visible
 + * @param bool $readonly - whether elements to modify data should be hidden, default is `true`
 + */
 +function output_server_certs_header($support=0, $readonly=true){
 +      //should be entered in account/12.php
 +      ?>
 +      <tr>
 +      <?
 +              if (!$readonly) {
 +                      ?>
 +                      <td class="DataTD"><?=_("Renew/Revoke/Delete")?></td>
 +                      <?
 +              }
 +              ?>
 +              <td class="DataTD"><?=_("Status")?></td>
 +              <td class="DataTD"><?=_("CommonName")?></td>
 +              <td class="DataTD"><?=_("SerialNumber")?></td>
 +              <td class="DataTD"><?=_("Revoked")?></td>
 +              <td class="DataTD"><?=_("Expires")?></td>
 +              <?
 +              if (1 != $support) {
 +                      ?>
 +                      <td colspan="2" class="DataTD"><?=_("Comment *")?></td>
 +                      <?
 +              }
 +      ?>
 +      </tr>
 +      <?
 +}
 +
 +/**
 + * Show the server cert data
 + * @param array $row - associative array containing the column data
 + * @param int   $support - if support = 1 some columns are not visible
 + * @param bool  $readonly - whether elements to modify data should be hidden, default is `true`
 + */
 +function output_server_certs($row, $support=0, $readonly=true){
 +      //should be entered in account/12.php
 +      $verified="";
 +      if ($row['timeleft'] > 0) {
 +              $verified = _("Valid");
 +      } else {
 +              $verified = _("Expired");
 +      }
 +
 +      if ($row['expired'] == 0) {
 +              $verified = _("Pending");
 +      }
 +
 +      if ($row['revoked'] == 0) {
 +              $row['revoke'] = _("Not Revoked");
 +      } else {
 +              $verified = _("Revoked");
 +      }
 +
 +      ?>
 +      <tr>
 +      <?
 +      if (!$readonly) {
 +              if ($verified === _("Pending")) {
 +                      ?>
 +                      <td class="DataTD">
 +                              <input type="checkbox" name="delid[]" value="<?=intval($row['id'])?>"/>
 +                      </td>
 +                      <?
 +              } elseif($verified === _("Revoked")) {
 +                      ?>
 +                      <td class="DataTD">&nbsp;</td>
 +                      <?
 +              } else {
 +                      ?>
 +                      <td class="DataTD">
 +                              <input type="checkbox" name="revokeid[]" value="<?=intval($row['id'])?>"/>
 +                      </td>
 +                      <?
 +              }
 +      }
 +
 +      ?>
 +      <td class="DataTD"><?=$verified?></td>
 +      <?
 +
 +      if ($verified === _("Pending")) {
 +              ?>
 +              <td class="DataTD"><?=htmlspecialchars($row['CN'])?></td>
 +              <?
 +      } else {
 +              ?>
 +              <td class="DataTD">
 +                      <a href="account.php?id=15&amp;cert=<?=intval($row['id'])?>">
 +                              <?=htmlspecialchars($row['CN'])?>
 +                      </a>
 +              </td>
 +              <?
 +      }
 +
 +      ?>
 +      <td class="DataTD"><?=$row['serial']?></td>
 +      <td class="DataTD"><?=$row['revoke']?></td>
 +      <td class="DataTD"><?=$row['expire']?></td>
 +      <?
 +
 +      if (1 != $support) {
 +              ?>
 +              <td class="DataTD">
 +                      <input name="comment_<?=intval($row['id'])?>" type="text" value="<?=htmlspecialchars($row['description'])?>" />
 +              </td>
 +              <?
 +              if (!$readonly) {
 +                      ?>
 +                      <td class="DataTD">
 +                              <input type="checkbox" name="check_comment_<?=intval($row['id'])?>" />
 +                      </td>
 +                      <?
 +              }
 +      }
 +
 +      ?>
 +      </tr>
 +      <?
 +}
 +
 +/**
 + * Show the table header to the gpg cert table
 + * @param int  $support - if support = 1 some columns ar not visible
 + * @param bool $readonly - whether elements to modify data should be hidden, default is `true`
 + */
 +function output_gpg_certs_header($support=0, $readonly=true){
 +      // $readonly is currently ignored but kept for consistency
 +      ?>
 +      <tr>
 +              <td class="DataTD"><?=_("Status")?></td>
 +              <td class="DataTD"><?=_("Email Address")?></td>
 +              <td class="DataTD"><?=_("Expires")?></td>
 +              <td class="DataTD"><?=_("Key ID")?></td>
 +              <?
 +              if (1 != $support) {
 +                      ?>
 +                      <td colspan="2" class="DataTD"><?=_("Comment *")?></td>
 +                      <?
 +              }
 +      ?>
 +      </tr>
 +      <?
 +}
 +
 +/**
 + * Show the gpg cert data
 + * @param array $row - associative array containing the column data
 + * @param int   $support - if support = 1 some columns are not visible
 + * @param bool  $readonly - whether elements to modify data should be hidden, default is `true`
 + */
 +function output_gpg_certs($row, $support=0, $readonly=true){
 +      //should be entered in account/55.php
 +      $verified="";
 +      if ($row['timeleft'] > 0) {
 +              $verified = _("Valid");
 +      } else {
 +              $verified = _("Expired");
 +      }
 +
 +      if ($row['expired'] == 0) {
 +              $verified = _("Pending");
 +      }
 +
 +      ?>
 +      <tr>
 +              <td class="DataTD"><?=$verified?></td>
 +      <?
 +
 +      if($verified == _("Pending")) {
 +              ?>
 +              <td class="DataTD"><?=htmlspecialchars($row['email'])?></td>
 +              <?
 +      } else {
 +              ?>
 +              <td class="DataTD">
 +                      <a href="gpg.php?id=3&amp;cert=<?=intval($row['id'])?>">
 +                              <?=htmlspecialchars($row['email'])?>
 +                      </a>
 +              </td>
 +              <?
 +      }
 +
 +      ?>
 +      <td class="DataTD"><?=$row['expire']?></td>
 +      <?
 +
 +      if($verified == _("Pending")) {
 +              ?>
 +              <td class="DataTD"><?=htmlspecialchars($row['keyid'])?></td>
 +              <?
 +      } else {
 +              ?>
 +              <td class="DataTD">
 +                      <a href="gpg.php?id=3&amp;cert=<?=intval($row['id'])?>">
 +                              <?=htmlspecialchars($row['keyid'])?>
 +                      </a>
 +              </td>
 +              <?
 +      }
 +
 +      if (1 != $support) {
 +              ?>
 +              <td class="DataTD">
 +                      <input name="comment_<?=intval($row['id'])?>" type="text" value="<?=htmlspecialchars($row['description'])?>" />
 +              </td>
 +              <?
 +              if (!$readonly) {
 +                      ?>
 +                      <td class="DataTD">
 +                              <input type="checkbox" name="check_comment_<?=intval($row['id'])?>" />
 +                      </td>
 +                      <?
 +              }
 +      }
 +
 +      ?>
 +      </tr>
 +      <?
 +}
 +
 +/**
 + * revoke_assurance()
 + * revokes an assurance and adjusts the old point calculation
 + * @param mixed $assuranceid - id of the assurance
 + * @param mixed $toid        - id of the assuree
 + * @return
 + */
 +function revoke_assurance($assuranceid, $toid){
 +      $assuranceid = intval($assuranceid);
 +      $toid = intval($toid);
 +      $points = 0;
 +
 +      $query = "update `notary` set `deleted` = NOW() where `id` = '$assuranceid' LIMIT 1";
 +      mysql_query($query);
 +      recalculate_old_assurance_points($toid);
 +      fix_assurer_flag($toid);
 +}
 +
 +/**
 + * recalculates the old points of an assuree
 + * @param int $toid        - id of the assuree
 + */
 +function recalculate_old_assurance_points($toid){
 +      $query = "select * from `notary` where `to` = '$toid' and `method` != 'Administrative Increase' and `deleted` = 0 order by `when`";
 +      $res = mysql_query($query);
 +      while($row = mysql_fetch_assoc($res)){
 +              $maxToAward = max(100 - $points, 0);
 +              $newpoints = min($row['awarded'], $maxToAward);
 +
 +              $points += $row['awarded'];
 +
 +              $query = "update `notary` set `points` = '". (int)$newpoints ."' where `id`='" . (int)$row['id'] . "' LIMIT 1";
 +              mysql_query($query);
 +      }
 +
 +}