summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/account_stuff.php6
-rw-r--r--includes/notary.inc.php32
-rw-r--r--pages/wot/17.php76
-rw-r--r--www/wot.php85
4 files changed, 185 insertions, 14 deletions
diff --git a/includes/account_stuff.php b/includes/account_stuff.php
index da328a3..9ff794d 100644
--- a/includes/account_stuff.php
+++ b/includes/account_stuff.php
@@ -101,7 +101,9 @@
case 506:
case 509:
case 511:
- case 512: $expand = " explode('WoT');"; break; // Find Assurer
+ case 512: // Find Assurer
+ case 516: // TTP form
+ case 517: $expand = " explode('WoT');"; break; // Assurer check
case 1000:
case 1001:
case 1002: // View GPG key
@@ -219,7 +221,7 @@ function hideall() {
<? } ?>
<div class="relatedLinks">
<h3 class="pointer" onclick="explode('WoT')">+ <?=_("CAcert Web of Trust")?></h3>
- <ul class="menu" id="WoT"><li><a href="wot.php?id=0"><?=_("About")?></a></li><li><a href="wot.php?id=12"><?=_("Find an Assurer")?></a></li><li><a href="wot.php?id=3"><?=_("Rules")?></a></li><li><? if($_SESSION['profile']['assurer'] != 1) { ?><a href="wot.php?id=2"><?=_("Becoming an Assurer")?></a><? } else { ?><a href="wot.php?id=5"><?=_("Assure Someone")?></a><? } ?></li><li><a href="wot.php?id=4"><?=_("Trusted ThirdParties")?></a></li><? if($_SESSION['profile']['points'] >= 500) { ?><li><a href="wot.php?id=11"><div style="white-space:nowrap"><?=_("Organisation Assurance")?></div></a></li><? } ?></ul>
+ <ul class="menu" id="WoT"><li><a href="wot.php?id=0"><?=_("About")?></a></li><li><a href="wot.php?id=12"><?=_("Find an Assurer")?></a></li><li><a href="wot.php?id=3"><?=_("Rules")?></a></li><li><a href="wot.php?id=17"><?=_("Check Assurer Status")?></a></li><li><? if($_SESSION['profile']['assurer'] != 1) { ?><a href="wot.php?id=2"><?=_("Becoming an Assurer")?></a><? } else { ?><a href="wot.php?id=5"><?=_("Assure Someone")?></a><? } ?></li><li><a href="wot.php?id=4"><?=_("Trusted ThirdParties")?></a></li><? if($_SESSION['profile']['points'] >= 500) { ?><li><a href="wot.php?id=11"><div style="white-space:nowrap"><?=_("Organisation Assurance")?></div></a></li><? } ?><li><a href="account.php?id=55"><?=_("Training")?></a></li></ul>
</div>
<div class="relatedLinks">
<h3 class="pointer" onclick="explode('WoTForms')">+ <?=_("CAP Forms")?></h3><?
diff --git a/includes/notary.inc.php b/includes/notary.inc.php
index 63c426e..40170ad 100644
--- a/includes/notary.inc.php
+++ b/includes/notary.inc.php
@@ -1569,8 +1569,29 @@ function get_user_agreements($memid, $type=null, $active=null){
return $return_str;
}
+ //user function
+ function get_user_id_from_email($email){
+ $email = mysql_real_escape_string(trim($email));
+ $res = query_init ("select `id` from `users` where `email` = '" . $email . "'");
+ $row = query_getnextrow($res);
+
+ return intval($row['id']);
+ }
+
+ function get_number_of_adminlog_entries($uid, $typeid, $hours=1){
+ $uid = intval($uid);
+ $typeid = intval($typeid);
+ $hours = intval($hours);
+ $res = query_init ("SELECT count(*) AS `no` FROM `adminlog`
+ WHERE `adminid` = " . $uid . " AND `actiontypeid`=" . $typeid . " and `when` > NOW() - INTERVAL " . $hours . " HOUR " );
+ $row = query_getnextrow($res);
+
+ return intval($row['no']);
+ }
+
/**
- * Write some information to the adminlog
+ * write_se_log()
+ * writes an information to the adminlog
*
* @param int $uid - id of the user account
* @param int $adminid - id of the admin
@@ -1578,15 +1599,16 @@ function get_user_agreements($memid, $type=null, $active=null){
* @param string $info - the ticket / arbitration number or other information
* @return bool - true := success, false := error
*/
-function write_se_log($uid, $adminid, $type, $info){
+function write_se_log($uid, $adminid, $type, $info, $typeid=1){
//records all support engineer actions changing a user account
$uid = intval($uid);
$adminid = intval($adminid);
$type = mysql_real_escape_string($type);
$info = mysql_real_escape_string($info);
- $query="insert into `adminlog` (`when`, `uid`, `adminid`,`type`,`information`) values
- (Now(), $uid, $adminid, '$type', '$info')";
- return mysql_query($query);
+ $typeid = intval($typeid);
+ $query="insert into `adminlog` (`when`, `uid`, `adminid`,`type`,`information`,`actiontypeid`) values
+ (Now(), $uid, $adminid, '$type', '$info', '$typeid')";
+ mysql_query($query);
}
/**
diff --git a/pages/wot/17.php b/pages/wot/17.php
new file mode 100644
index 0000000..657f990
--- /dev/null
+++ b/pages/wot/17.php
@@ -0,0 +1,76 @@
+<? /*
+ LibreSSL - CAcert web application
+ Copyright (C) 2004-2008 CAcert Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+*/
+include_once("../includes/shutdown.php");
+require_once("../includes/lib/l10n.php");
+
+if(array_key_exists('error',$_SESSION['_config']) && $_SESSION['_config']['error'] != "")
+{
+ ?><font color="orange" size="+1">
+ <? echo _("ERROR").": ".$_SESSION['_config']['error'] ?>
+ </font>
+ <?unset($_SESSION['_config']['error']);
+}
+
+if(array_key_exists('noemailfound',$_SESSION['_config']) && $_SESSION['_config']['noemailfound'] == 1) {
+ unset($_SESSION['_config']['noemailfound']);
+}
+
+?>
+<form method="post" action="wot.php" name="form1">
+<table align="center" valign="middle" border="0" cellspacing="0" cellpadding="0" class="wrapper">
+ <tr>
+ <td colspan="2" class="title"><?=_('Check Assurer Status')?></td>
+ </tr>
+ <tr>
+ <td class="DataTD"><?=_('Email to check')?>:</td>
+<? if(array_key_exists('remindersent',$_SESSION['_config']) && $_SESSION['_config']['remindersent'] == 1) { unset($_SESSION['_config']['remindersent']) ?>
+ <td class="DataTD"><input type="text" name="email" id="email" value=""></td>
+ <? } else { ?>
+ <td class="DataTD"><input type="text" name="email" id="email" value="<?=array_key_exists('email',$_POST)?sanitizeHTML($_POST['email']):""?>"></td>
+ <? } ?>
+ </tr>
+ <tr>
+ <td class="DataTD"><?=_('Reason why the assurer status is needed')?>:</td>
+ <td class="DataTD"><select name="reason"><option>--</option>
+ <option><?=_('Assurance')?></option>
+ <option><?=_('Event Preparation')?></option>
+ <option><?=_('Arbitration')?></option>
+ <option><?=_('CARS check')?></option>
+ <option><?=_('CATS certificate creation')?></option>
+ <option><?=_('Organisation Assurance')?></option>
+ </select></td>
+ </tr>
+ <tr>
+ <td class="DataTD" colspan="2"><?=_('If you request the assurer status the result is send via mail to the person of whom you request the status of.')?></td>
+ </tr>
+ <tr>
+ <td class="DataTD" colspan="2"><input type="submit" name="process" value="<?=_("Next")?>"></td>
+ </tr>
+</table>
+<input type="hidden" name="oldid" value="<?=$id?>">
+</form>
+<SCRIPT LANGUAGE="JavaScript">
+//<![CDATA[
+ function my_init()
+ {
+ document.getElementById("email").focus();
+ }
+
+ window.onload = my_init();
+//]]>
+</script>
diff --git a/www/wot.php b/www/wot.php
index a7195e3..808d57f 100644
--- a/www/wot.php
+++ b/www/wot.php
@@ -80,8 +80,11 @@ function show_page($target,$message,$error)
case 'MyPointsNew': includeit(15, "wot");
break;
case '16':
- case 'TTPForm': includeit(16, "wot");
- break;
+ case 'TTPForm': includeit(16, "wot");
+ break;
+ case '17':
+ case 'AssurerCheck': includeit(17, "wot");
+ break;
}
showfooter();
@@ -124,6 +127,7 @@ function send_reminder()
if(array_key_exists('location',$_POST) && $_POST['location'] != "")
$_SESSION['_config']['location'] = $_POST['location'];
+ $id=array_key_exists('id',$_REQUEST)?intval($_REQUEST['id']):0;
$oldid=array_key_exists('oldid',$_REQUEST)?intval($_REQUEST['oldid']):0;
if($oldid == 12)
@@ -555,9 +559,76 @@ function send_reminder()
exit;
}
-// showheader(_("My CAcert.org Account!"));
-// echo "ID now = ".$id."/".$oldid.">>".$iecho;
-// includeit($id, "wot");
-// showfooter();
+ // Assurer Check
+ if($oldid == 17 )
+ {
+ $oldid = 0;
+ $id = 17;
+ $number = 5;
+ $email = mysql_real_escape_string(trim($_REQUEST['email']));
+ $reason = mysql_real_escape_string(trim($_REQUEST['reason']));
+ $uid = get_user_id_from_email($email);
+
+ if ($uid == 0) {
+ show_page("AssurerCheck", "", _("I'm sorry, there was no email matching what you entered in the system. Please double check your information."));
+ exit;
+ }
+
+ if ($reason == "--") {
+ show_page("AssurerCheck", "" ,_("I'm sorry, there was no reason given why you need to check the assurer status."));
+ exit;
+ }
+
+ if (get_number_of_adminlog_entries($_SESSION['profile']['id'],1000,1) > $number) {
+ show_page("AssurerCheck", "", sprintf(_("I'm sorry, you reached the maximum requests of %s per hour. Please wait until you try it again."),$number));
+ exit;
+ }
+
+ if (is_assurer($uid)) {
+ $status = _('Is assurer');
+ } else {
+ $status = _('Is no assurer');
+ }
+
+ write_se_log($uid, $_SESSION['profile']['id'], 'User Assurer status check', '', 1000);
+
+ $assurer = get_user($uid);
+
+ //mail to member
+ $my_translation = L10n::get_translation();
+ L10n::set_translation($assurer['language']);
+
+ $subject = "[CAcert.org] ". _("Assurer status report for you");
+
+ $body = sprintf(_("Hi %s,"), $assurer['fname'])."\n\n";
+ $body .= sprintf(_("%s %s (%s) has requested your assurer status for %s."),
+ $_SESSION['profile']['fname'],
+ $_SESSION['profile']['lname'],
+ $_SESSION['profile']['email'],
+ $reason)."\n\n";
+ $body .= sprintf(_("The transmitted result: %s"), $status)."\n";
+ $body .= _("Best regards")."\n";
+ $body .= _("CAcert Support Team");
+
+ sendmail($assurer['email'], "[CAcert.org] ". $subject, $body,
+ "support@cacert.org", //from
+ "", //replyto
+ "", //toname
+ "CAcert Support"); //fromname
+
+ L10n::set_translation($my_translation);
+
+ showheader(_("My CAcert.org Account!"));?>
+ <p>
+ <?=sprintf(_('The assurer status for %s %s (%s) is: %s'),
+ $assurer['fname'],
+ $assurer['lname'],
+ $assurer['email'],
+ $status) . '<br/>'. _('The mail with the status request has been sent to the email address above.'); ?>
+ </p>
+ <?
+ showfooter();
+ exit;
+ }
+
show_page ($id,"","");
-?>