| 
									
										
										
										
											2009-08-10 14:48:50 +02:00
										 |  |  | <?php | 
					
						
							|  |  |  | /** | 
					
						
							| 
									
										
										
										
											2010-06-29 14:39:57 -04:00
										 |  |  |  * This file is part of libomb | 
					
						
							| 
									
										
										
										
											2009-08-10 14:48:50 +02:00
										 |  |  |  * | 
					
						
							|  |  |  |  * PHP version 5 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * LICENSE: This program is free software: you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of the GNU Affero General Public License as published by | 
					
						
							|  |  |  |  * the Free Software Foundation, either version 3 of the License, or | 
					
						
							|  |  |  |  * (at your option) any later version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * 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 Affero General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU Affero General Public License | 
					
						
							|  |  |  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>. | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2010-06-29 14:39:57 -04:00
										 |  |  |  * @package OMB | 
					
						
							|  |  |  |  * @author  Adrian Lang <mail@adrianlang.de> | 
					
						
							|  |  |  |  * @license http://www.gnu.org/licenses/agpl.html GNU AGPL 3.0 | 
					
						
							|  |  |  |  * @version 0.1a-20090828 | 
					
						
							|  |  |  |  * @link    http://adrianlang.de/libomb | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2009-08-10 14:48:50 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-29 14:39:57 -04:00
										 |  |  | require_once 'Validate.php'; | 
					
						
							| 
									
										
										
										
											2009-08-10 14:48:50 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-29 14:39:57 -04:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Helper functions for libomb | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This class contains helper functions for libomb. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | class OMB_Helper | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-08-10 14:48:50 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-29 14:39:57 -04:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Non-scalar constants | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * The set of OMB and OAuth Services an OMB Server has to implement. | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2009-08-10 14:48:50 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-29 14:39:57 -04:00
										 |  |  |     public static $OMB_SERVICES   = array(OMB_ENDPOINT_UPDATEPROFILE, | 
					
						
							|  |  |  |                                           OMB_ENDPOINT_POSTNOTICE); | 
					
						
							|  |  |  |     public static $OAUTH_SERVICES = array(OAUTH_ENDPOINT_REQUEST, | 
					
						
							|  |  |  |                                           OAUTH_ENDPOINT_AUTHORIZE, | 
					
						
							|  |  |  |                                           OAUTH_ENDPOINT_ACCESS); | 
					
						
							| 
									
										
										
										
											2009-08-10 14:48:50 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-29 14:39:57 -04:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Validate URL | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * Basic URL validation. Currently http, https, ftp and gopher are supported | 
					
						
							|  |  |  |      * schemes. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param string $url The URL which is to be validated. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return bool Whether URL is valid. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @access public | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public static function validateURL($url) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return Validate::uri($url, array('allowed_schemes' => array('http', | 
					
						
							|  |  |  |                                                     'https', 'gopher', 'ftp'))); | 
					
						
							| 
									
										
										
										
											2009-08-10 14:48:50 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-06-29 14:39:57 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Validate Media type | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * Basic Media type validation. Checks for valid maintype and correct | 
					
						
							|  |  |  |      * format. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @param string $mediatype The Media type which is to be validated. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return bool Whether media type is valid. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @access public | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public static function validateMediaType($mediatype) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return preg_match('/^(\w+)\/([\w\d-+.]+)$/', $mediatype, $subtypes) > 0 | 
					
						
							|  |  |  |                && | 
					
						
							|  |  |  |                in_array(strtolower($subtypes[1]), array('application', 'audio', | 
					
						
							|  |  |  |                'image', 'message', 'model', 'multipart', 'text', 'video')); | 
					
						
							| 
									
										
										
										
											2009-08-10 14:48:50 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-06-29 14:39:57 -04:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Remove escaping from request parameters | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * Neutralise the evil effects of magic_quotes_gpc in the current request. | 
					
						
							|  |  |  |      * This is used before handing a request off to OAuthRequest::from_request. | 
					
						
							|  |  |  |      * Many thanks to Ciaran Gultnieks for this fix. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @access public | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public static function removeMagicQuotesFromRequest() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         if (get_magic_quotes_gpc() === 1) { | 
					
						
							|  |  |  |             $_POST = array_map('stripslashes', $_POST); | 
					
						
							|  |  |  |             $_GET  = array_map('stripslashes', $_GET); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2009-08-10 14:48:50 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ?>
 |