X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=VerifyAccess.php;h=ba8d6414a6cd4b141c51ecbcfd86de0499d466e9;hp=ff79ad5bf72faa6b2deb27ca0fe217a62850e10b;hb=8cd2a9237c684aa16bc21e3ac6d3793c49c65400;hpb=8b7b34b434d8e702e41684f40612ccf58a18db0e diff --git a/VerifyAccess.php b/VerifyAccess.php index ff79ad5b..ba8d6414 100644 --- a/VerifyAccess.php +++ b/VerifyAccess.php @@ -14,49 +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 validate($id) + function post($base) { - $ret = array( - 'is_valid' => true, - 'errorMsg' => '' - ); + $core_ip_access = DB_DataObject::factory('core_ip_access'); - @list($id, $key) = explode('/', $id); + if( + 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($id) || empty($key)){ - return false; + if(!empty($_REQUEST['_to_data'])){ + $this->jdata($core_ip_access->toArray()); } - $core_ip_access = DB_DataObject::factory('core_ip_access'); + $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 = HTML_FlexyFramework::get(); +// $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'); + } - $ff->Pman['XMPP']['to'] = 'edward@roojs.com'; // testing... + $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'); - 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 - ) { - $this->jerr('Invalid URL'); - } } + }