X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=VerifyAccess.php;h=ba8d6414a6cd4b141c51ecbcfd86de0499d466e9;hp=db5ead8f04fbe90533ccbb1ccdefcf9f1c6f4cc5;hb=1524f8b36295809a3eedd6da3c6494f8aa0d86f5;hpb=e352ab10383ab1015eca97e59639b50e3726b810 diff --git a/VerifyAccess.php b/VerifyAccess.php index db5ead8f..ba8d6414 100644 --- a/VerifyAccess.php +++ b/VerifyAccess.php @@ -4,6 +4,8 @@ require_once 'Pman.php'; class Pman_Core_VerifyAccess extends Pman { + var $masterTemplate = 'master-verify-ip-access.html'; + /* * This is a public page */ @@ -12,33 +14,82 @@ class Pman_Core_VerifyAccess extends Pman return true; } - function get($id) + function get($id='', $opts = array()) { @list($id, $key) = explode('/', $id); + if(empty($id) || empty($key)){ + $this->jerr('Invalid URL'); + } + + $core_ip_access = DB_DataObject::factory('core_ip_access'); + + if(!$core_ip_access->get($id) || $core_ip_access->authorized_key != $key){ + $this->jerr('This URL is broken'); + } + $ff = HTML_FlexyFramework::get(); + if(empty($ff->Pman['ip_management']) || empty($ff->Pman['XMPP']) || empty($ff->Pman['XMPP']['to'])) { + $this->jerr('[System Error] This site does not using IP management'); + } + +// $ff->Pman['XMPP']['to'] = 'edward@roojs.com'; // testing... + $core_person = DB_DataObject::factory('core_person'); + + if(!$core_person->get('email', $ff->Pman['XMPP']['to'])) { + $this->jerr('[System Error] Please setup the XMPP correctly'); + } + + return; + + } + + function post($base) + { $core_ip_access = DB_DataObject::factory('core_ip_access'); if( - empty($id) || - empty($key) || - empty($ff->Pman['ip_management']) || - empty($ff->Pman['XMPP']) || - empty($ff->Pman['XMPP']['to']) || - !$core_person->get('email', $ff->Pman['XMPP']['to']) || - !$core_ip_access->get($id) || - $core_ip_access->authorized_key != $key - ) { + empty($_REQUEST['id']) || + empty($_REQUEST['authorized_key']) || + !$core_ip_access->get($_REQUEST['id']) || + $core_ip_access->authorized_key != $_REQUEST['authorized_key'] + ){ $this->jerr('Invalid URL'); } + if(!empty($_REQUEST['_to_data'])){ + $this->jdata($core_ip_access->toArray()); + } + + $ff = HTML_FlexyFramework::get(); + + if(empty($ff->Pman['ip_management']) || empty($ff->Pman['XMPP']) || empty($ff->Pman['XMPP']['to'])) { + $this->jerr('[System Error] This site does not using IP management'); + } + +// $ff->Pman['XMPP']['to'] = 'edward@roojs.com'; // testing... + $core_person = DB_DataObject::factory('core_person'); + if(!$core_person->get('email', $ff->Pman['XMPP']['to'])) { + $this->jerr('[System Error] Please setup the XMPP correctly'); + } + $o = clone($core_ip_access); + $core_ip_access->setFrom(array( + 'status' => empty($_REQUEST['status']) ? 0 : $_REQUEST['status'], + 'expire_dt' => ($_REQUEST['status'] != -2 || empty($_REQUEST['expire_dt'])) ? '' : date('Y-m-d', strtotime($_REQUEST['expire_dt'])), + 'authorized_by' => $core_person->id + )); + + $core_ip_access->update($o); + + $this->jok('OK'); } + }