diff options
author | Luke Shumaker <LukeShu@sbcglobal.net> | 2012-01-07 08:21:00 -0800 |
---|---|---|
committer | Luke Shumaker <LukeShu@sbcglobal.net> | 2012-01-07 10:20:28 -0800 |
commit | 464f4d3497617fadb9d7752868f1175849cfa6d2 (patch) | |
tree | 0771bd935b30971bf2c244b6f158ed7496b644e5 /apps/um/plugins | |
parent | 3d64793a1ee45857856be1cd71c3a0a040a3e869 (diff) |
Refactor to separate the framework from the app; drop message stuff, this app is just user management. Add a json view for individual usersHEADmaster
Diffstat (limited to 'apps/um/plugins')
-rw-r--r-- | apps/um/plugins/InformationPlugin.class.php | 62 | ||||
-rw-r--r-- | apps/um/plugins/ReCaptcha.class.php | 47 |
2 files changed, 109 insertions, 0 deletions
diff --git a/apps/um/plugins/InformationPlugin.class.php b/apps/um/plugins/InformationPlugin.class.php new file mode 100644 index 0000000..70ec8ac --- /dev/null +++ b/apps/um/plugins/InformationPlugin.class.php @@ -0,0 +1,62 @@ +<?php + +require_once('Plugin.class.php'); + +class InformationPlugin extends Plugin { + public static function configList() { return array(); } + public function init() {} + public static function description() { + return "Get information about the user."; + } + public function userConfig(&$arr) { + $group = 'Information'; + $this->addConfigGroup($arr, $group); + $arr[$group][] = array('firstname','First Name','text'); + $arr[$group][] = array('lastname','Last Name','text'); + $arr[$group][] = array('school','Home School','text'); + $arr[$group][] = array('hsclass','Highschool Class of','text'); + + $group = 'New Member Questions'; + $this->addConfigGroup($arr, $group); + $arr[$group][] = array('q_why_team', + 'Why do you want to be a part of the robotics team?', + 'textarea'); + $arr[$group][] = array('q_strengths', + 'What strengths do you have that can contribute to the robotics team?', + 'textarea'); + $arr[$group][] = array('q_other_activities', + 'Other after school activities--sports, performing arts, extracurricular activities. (January through March)', + 'textarea'); + $arr[$group][] = array('q_other_commitments', + 'After school/weekend work commitments. (January through March)', + 'textarea'); + // TODO: Top 3 subteams + $arr[$group][] = array('q_who_you_know', + 'Who do you know that could possibly help our team this year? '. + 'This includes material resources, supplying or preparing food '. + 'for work nights/competitions, corporate sponsorship, travel, '. + 'engineers, computer programmers, web developers, and fundraisers.', + 'textarea'); + $arr[$group][] = array('x_bogus_recommend', + "List two teachers who we could contact for your recommendation to be a member of this year's team.", + 'paragraph'); + $arr[$group][] = array('q_teacher_recommend1', 'Teacher 1', 'text'); + $arr[$group][] = array('q_teacher_recommend2', 'Teacher 2', 'text'); + $arr[$group][] = array('x_bogus_agreement', + "I understand that if I am chosen to participate ". + "in the robotics project, I will represent my ". + "school in a positive manner. If I fail to do so, ". + "I may be removed from the team at any time. In ". + "addition, if I do not have good attendance ". + "during this project, I will not be allowed to ". + "travel with the team to the competitions. I also ". + "understand that all of the school rules will be ". + "in effect at all times.", + 'paragraph'); + $arr[$group][] = array('q_i_agree', + "I agree", + 'checkbox'); + } + public function sendPrivate($to, $id, $subject, $body) {} + public function sendBroadcast($id, $subject, $body) {} +} diff --git a/apps/um/plugins/ReCaptcha.class.php b/apps/um/plugins/ReCaptcha.class.php new file mode 100644 index 0000000..165493b --- /dev/null +++ b/apps/um/plugins/ReCaptcha.class.php @@ -0,0 +1,47 @@ +<?php +// We only include the recaptchalib.php file when we use it because we don't +// want it polluting the global namespace thing. + +class ReCaptcha extends Plugin { + protected $config = array('public_key'=>'', + 'private_key'=>''); + public static function description() { + return 'Add a reCaptcha to keep out spam users.'; + } + public static function configList() { + return array('public_key'=>'text', + 'private_key'=>'text'); + } + public function init() {} + + private $resp = null; + private function getResp() { + if ($this->resp===null) { + require_once('recaptchalib.php'); + @$response = $_POST['recaptcha_response_field']; + @$challenge = $_POST['recaptcha_challenge_field']; + $this->resp = recaptcha_check_answer($this->config['private_key'], + $_SERVER['REMOTE_ADDR'], + $challenge, + $response); + } + return $this->resp; + } + + private function getError() { + if ($_POST["recaptcha_response_field"] && !$this->antispam_verify()) { + return $this->getResp()->error; + } else { + return false; + } + } + + public function antispam_verify() { + return $this->getResp()->is_valid; + } + + public function antispam_html() { + require_once('recaptchalib.php'); + return recaptcha_get_html($this->config['public_key'], $this->getError()); + } +} |