Code cleanup and start of some commenting

This commit is contained in:
Mike Almond 2012-05-03 06:22:23 -04:00
parent d0e471f4e0
commit 532323c497

View File

@ -16,15 +16,12 @@ use Ratchet\Resource\Command\CommandInterface;
*/
class FlashPolicyComponent implements MessageComponentInterface {
protected $_policy = '<?xml version="1.0"?><!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"><cross-domain-policy></cross-domain-policy>';
protected $_access = array();
protected $_headers = array();
protected $_policy = '<?xml version="1.0"?><!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"><cross-domain-policy></cross-domain-policy>';
protected $_access = array();
protected $_headers = array();
protected $_siteControl = '';
protected $_cache = '';
protected $_cache = '';
protected $_cacheValid = false;
/**
@ -70,26 +67,39 @@ class FlashPolicyComponent implements MessageComponentInterface {
}
/**
* setSiteControl function.
*
* @access public
* @param string $permittedCrossDomainPolicies (default: 'all')
* @return void
*/
public function setSiteControl($permittedCrossDomainPolicies = 'all') {
if (!$this->validateSiteControl($permittedCrossDomainPolicies)) {
throw new \UnexpectedValueException('Invalid site control set');
}
$this->_siteControl = $permittedCrossDomainPolicies;
}
/**
* renderPolicy function.
*
* @access public
* @return void
*/
public function renderPolicy() {
$policy = new \SimpleXMLElement($this->_policy);
$policy = new \SimpleXMLElement($this->_policy);
$siteControl = $policy->addChild('site-control');
$siteControl = $policy->addChild('site-control');
if ($this->_siteControl == '') {
throw new \UnexpectedValueException('Where\'s my site control?');
}
$siteControl->addAttribute('permitted-cross-domain-policies', $this->_siteControl);
if (empty($this->_access)) {
throw new \UnexpectedValueException('Missing site access');
}
@ -108,27 +118,45 @@ class FlashPolicyComponent implements MessageComponentInterface {
$tmp->addAttribute('headers', $access[1]);
$tmp->addAttribute('secure', ($access[2] == true) ? 'true' : 'false');
}
return $policy;
}
/**
* addAllowedAccess function.
*
* @access public
* @param mixed $domain
* @param string $ports (default: '*')
* @param bool $secure (default: false)
* @return void
*/
public function addAllowedAccess($domain, $ports = '*', $secure = false) {
if (!$this->validateDomain($domain)) {
throw new \UnexpectedValueException('Invalid domain');
}
if (!$this->validatePorts($ports)) {
throw new \UnexpectedValueException('Invalid Port');
}
$this->_access[] = array($domain, $ports, $secure);
$this->_cacheValid = false;
}
/**
* addAllowedHTTPRequestHeaders function.
*
* @access public
* @param mixed $domain
* @param mixed $headers
* @param bool $secure (default: true)
* @return void
*/
public function addAllowedHTTPRequestHeaders($domain, $headers, $secure = true) {
if (!$this->validateDomain($domain)) {
throw new \UnexpectedValueException('Invalid domain');
}
@ -138,13 +166,26 @@ class FlashPolicyComponent implements MessageComponentInterface {
$this->_headers[] = array($domain, $headers, (string)$secure);
$this->_cacheValid = false;
}
/**
* validateSiteControl function.
*
* @access public
* @param mixed $permittedCrossDomainPolicies
* @return void
*/
public function validateSiteControl($permittedCrossDomainPolicies) {
return (bool)in_array($permittedCrossDomainPolicies, array('none', 'master-only', 'by-content-type', 'all'));
return (bool)in_array($permittedCrossDomainPolicies, array('none', 'master-only', 'by-content-type', 'all'));
}
/**
* validateDomain function.
*
* @access public
* @param mixed $domain
* @return void
*/
public function validateDomain($domain) {
if ($domain == '*') {
@ -155,7 +196,6 @@ class FlashPolicyComponent implements MessageComponentInterface {
return true;
}
$d = parse_url($domain);
if (!isset($d['scheme']) || empty($d['scheme'])) {
$domain = 'http://' . $domain;
@ -176,9 +216,16 @@ class FlashPolicyComponent implements MessageComponentInterface {
return (bool)filter_var(str_replace(array('*.', '.*'), '123', $domain), FILTER_VALIDATE_URL);
}
/**
* validatePorts function.
*
* @access public
* @param mixed $port
* @return void
*/
public function validatePorts($port) {
if ($port == '*') {
return true;
}
@ -208,6 +255,13 @@ class FlashPolicyComponent implements MessageComponentInterface {
return true;
}
/**
* validateHeaders function.
*
* @access public
* @param mixed $headers
* @return void
*/
public function validateHeaders($headers) {
if ($headers == '*') {
@ -229,6 +283,13 @@ class FlashPolicyComponent implements MessageComponentInterface {
return true;
}
/**
* validateSecure function.
*
* @access public
* @param mixed $secure
* @return void
*/
public function validateSecure($secure) {
return is_bool($secure);