summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTING.md1
-rw-r--r--composer.json4
-rw-r--r--composer.lock88
-rw-r--r--controllers/auth.php40
4 files changed, 73 insertions, 60 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..2eebfde
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1 @@
+By submitting code to this project, you agree to irrevocably release it under the same license as this project. See README.md for more details. \ No newline at end of file
diff --git a/composer.json b/composer.json
index a0003bd..1a61c65 100644
--- a/composer.json
+++ b/composer.json
@@ -3,10 +3,10 @@
"slim/slim": "2.2.*",
"saltybeagle/savant3": "dev-master",
"j4mie/idiorm": "1.4.*",
- "mf2/mf2": "0.1.*",
+ "mf2/mf2": "0.2.*",
"indieweb/mention-client": "0.*",
"indieweb/date-formatter": "0.1.*",
- "indieauth/client": "0.1.3",
+ "indieauth/client": ">=0.1.11",
"mpratt/relativetime": ">=1.0",
"firebase/php-jwt": "2.*",
"ruudk/twitter-oauth": "dev-master",
diff --git a/composer.lock b/composer.lock
index 530edb6..fef94a8 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "hash": "ee4d8d4e5d4ced9e6a7191bd5bc1fa29",
+ "hash": "66741248756ed56d19ea2afd34809fe2",
"packages": [
{
"name": "andreyco/instagram",
@@ -50,6 +50,46 @@
"time": "2014-07-14 19:53:19"
},
{
+ "name": "barnabywalters/mf-cleaner",
+ "version": "v0.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/barnabywalters/php-mf-cleaner.git",
+ "reference": "ef6a16628db6e8aee2b4f8bb8093d18c24b74cd4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/barnabywalters/php-mf-cleaner/zipball/ef6a16628db6e8aee2b4f8bb8093d18c24b74cd4",
+ "reference": "ef6a16628db6e8aee2b4f8bb8093d18c24b74cd4",
+ "shasum": ""
+ },
+ "require-dev": {
+ "php": ">=5.3",
+ "phpunit/phpunit": "*"
+ },
+ "suggest": {
+ "mf2/mf2": "To parse microformats2 structures from (X)HTML"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/BarnabyWalters/Mf2/Functions.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Barnaby Walters",
+ "email": "barnaby@waterpigs.co.uk"
+ }
+ ],
+ "description": "Cleans up microformats2 array structures",
+ "time": "2014-10-06 23:11:15"
+ },
+ {
"name": "firebase/php-jwt",
"version": "v2.2.0",
"source": {
@@ -95,20 +135,22 @@
},
{
"name": "indieauth/client",
- "version": "0.1.3",
+ "version": "0.1.11",
"source": {
"type": "git",
"url": "https://github.com/indieweb/indieauth-client-php.git",
- "reference": "d0a9748aa643d826616ec1b02fb121f4aba0c9fc"
+ "reference": "6504ed0d4714084e9955f639d6e5cf4e976f9038"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/indieweb/indieauth-client-php/zipball/d0a9748aa643d826616ec1b02fb121f4aba0c9fc",
- "reference": "d0a9748aa643d826616ec1b02fb121f4aba0c9fc",
+ "url": "https://api.github.com/repos/indieweb/indieauth-client-php/zipball/6504ed0d4714084e9955f639d6e5cf4e976f9038",
+ "reference": "6504ed0d4714084e9955f639d6e5cf4e976f9038",
"shasum": ""
},
"require": {
+ "barnabywalters/mf-cleaner": "0.*",
"indieweb/link-rel-parser": "0.1.1",
+ "mf2/mf2": "0.2.*",
"php": ">5.3.0"
},
"type": "library",
@@ -128,7 +170,7 @@
}
],
"description": "IndieAuth Client Library",
- "time": "2014-03-02 21:07:38"
+ "time": "2015-08-30 22:29:40"
},
{
"name": "indieweb/date-formatter",
@@ -221,19 +263,20 @@
},
{
"name": "indieweb/mention-client",
- "version": "0.4.1",
+ "version": "0.4.7",
"source": {
"type": "git",
"url": "https://github.com/indieweb/mention-client-php.git",
- "reference": "dc88d797a54c0f138ab202acfeb4a1fb9aa38fff"
+ "reference": "15271f4988c7bf661896fad188fdf0bf91877a7f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/indieweb/mention-client-php/zipball/dc88d797a54c0f138ab202acfeb4a1fb9aa38fff",
- "reference": "dc88d797a54c0f138ab202acfeb4a1fb9aa38fff",
+ "url": "https://api.github.com/repos/indieweb/mention-client-php/zipball/15271f4988c7bf661896fad188fdf0bf91877a7f",
+ "reference": "15271f4988c7bf661896fad188fdf0bf91877a7f",
"shasum": ""
},
"require": {
+ "mf2/mf2": "0.2.*",
"php": ">=5.3"
},
"type": "library",
@@ -255,7 +298,7 @@
],
"description": "Client library for sending webmention and pingback notifications",
"homepage": "https://github.com/indieweb/mention-client-php",
- "time": "2013-09-14 20:30:04"
+ "time": "2015-04-03 11:21:06"
},
{
"name": "j4mie/idiorm",
@@ -317,16 +360,16 @@
},
{
"name": "mf2/mf2",
- "version": "v0.1.23",
+ "version": "v0.2.12",
"source": {
"type": "git",
"url": "https://github.com/indieweb/php-mf2.git",
- "reference": "9094e4f7ad535e0796f5a384dec42bab81393e0e"
+ "reference": "6701504876d6c9242eb310b35f41d40d9785ab4e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/indieweb/php-mf2/zipball/9094e4f7ad535e0796f5a384dec42bab81393e0e",
- "reference": "9094e4f7ad535e0796f5a384dec42bab81393e0e",
+ "url": "https://api.github.com/repos/indieweb/php-mf2/zipball/6701504876d6c9242eb310b35f41d40d9785ab4e",
+ "reference": "6701504876d6c9242eb310b35f41d40d9785ab4e",
"shasum": ""
},
"require": {
@@ -338,11 +381,15 @@
"suggest": {
"barnabywalters/mf-cleaner": "To more easily handle the canonical data php-mf2 gives you"
},
+ "bin": [
+ "bin/fetch-mf2",
+ "bin/parse-mf2"
+ ],
"type": "library",
"autoload": {
- "psr-0": {
- "mf2\\Parser": ""
- }
+ "files": [
+ "Mf2/Parser.php"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -354,14 +401,15 @@
"homepage": "http://waterpigs.co.uk"
}
],
- "description": "A pure (generic) microformats-2 parser",
+ "description": "A pure, generic microformats2 parser — makes HTML as easy to consume as a JSON API",
"keywords": [
+ "html",
"microformats",
"microformats 2",
"parser",
"semantic"
],
- "time": "2013-10-20 12:25:50"
+ "time": "2015-07-12 14:10:01"
},
{
"name": "mpratt/relativetime",
diff --git a/controllers/auth.php b/controllers/auth.php
index 55bbf0c..0237c59 100644
--- a/controllers/auth.php
+++ b/controllers/auth.php
@@ -17,42 +17,6 @@ function build_url($parsed_url) {
return "$scheme$user$pass$host$port$path$query$fragment";
}
-// Input: Any URL or string like "aaronparecki.com"
-// Output: Normlized URL (default to http if no scheme, force "/" path)
-// or return false if not a valid URL (has query string params, etc)
-function normalizeMeURL($url) {
- $me = parse_url($url);
-
- if(array_key_exists('path', $me) && $me['path'] == '')
- return false;
-
- // parse_url returns just "path" for naked domains
- if(count($me) == 1 && array_key_exists('path', $me)) {
- $me['host'] = $me['path'];
- unset($me['path']);
- }
-
- if(!array_key_exists('scheme', $me))
- $me['scheme'] = 'http';
-
- if(!array_key_exists('path', $me))
- $me['path'] = '/';
-
- // Invalid scheme
- if(!in_array($me['scheme'], array('http','https')))
- return false;
-
- // Invalid path
- if($me['path'] != '/')
- return false;
-
- // query and fragment not allowed
- if(array_key_exists('query', $me) || array_key_exists('fragment', $me))
- return false;
-
- return build_url($me);
-}
-
$app->get('/', function($format='html') use($app) {
$res = $app->response();
@@ -75,7 +39,7 @@ $app->get('/auth/start', function() use($app) {
// the "me" parameter is user input, and may be in a couple of different forms:
// aaronparecki.com http://aaronparecki.com http://aaronparecki.com/
// Normlize the value now (move this into a function in IndieAuth\Client later)
- if(!array_key_exists('me', $params) || !($me = normalizeMeURL($params['me']))) {
+ if(!array_key_exists('me', $params) || !($me = IndieAuth\Client::normalizeMeURL($params['me']))) {
$html = render('auth_error', array(
'title' => 'Sign In',
'error' => 'Invalid "me" Parameter',
@@ -156,7 +120,7 @@ $app->get('/auth/callback', function() use($app) {
// Double check there is a "me" parameter
// Should only fail for really hacked up requests
- if(!array_key_exists('me', $params) || !($me = normalizeMeURL($params['me']))) {
+ if(!array_key_exists('me', $params) || !($me = IndieAuth\Client::normalizeMeURL($params['me']))) {
if(array_key_exists('me', $params))
$error = 'The ID you entered, <strong>' . $params['me'] . '</strong> is not valid.';
else