summaryrefslogtreecommitdiffstats
path: root/settings/oauth.php
blob: 2592b926d179e8010c365f1f0e3608782c2fd688 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
/**
 * Copyright (c) 2012, Tom Needham <tom@owncloud.com>
 * This file is licensed under the Affero General Public License version 3 or later.
 * See the COPYING-README file.
 */

require_once('../lib/base.php');

// Logic
$operation = isset($_GET['operation']) ? $_GET['operation'] : '';
switch($operation){
	
	case 'register':
		
	break;
	
	case 'request_token':
	break;
	
	case 'authorise';
		OC_Util::checkLoggedIn();
		// Example
		$consumer = array(
			'name' => 'Firefox Bookmark Sync',
			'scopes' => array('ookmarks'),
		);
		
		// Check that the scopes are real and installed
		$apps = OC_App::getEnabledApps();
		$notfound = array();
		foreach($consumer['scopes'] as $requiredapp){
			if(!in_array($requiredapp, $apps)){
				$notfound[] = $requiredapp;
			}
		}
		if(!empty($notfound)){
			// We need more apps :( Show error
			if(count($notfound)==1){
				$message = 'requires that you have an extra app installed on your ownCloud. Please contact your ownCloud administrator and ask them to install the app below.';
			} else {
				$message = 'requires that you have some extra apps installed on your ownCloud. Please contract your ownCloud administrator and ask them to install the apps below.';
			}
			$t = new OC_Template('settings', 'oauth-required-apps', 'guest');
			OC_Util::addStyle('settings', 'oauth');
			$t->assign('requiredapps', $notfound);
			$t->assign('consumer', $consumer);
			$t->assign('message', $message);
			$t->printPage();
		} else {
			$t = new OC_Template('settings', 'oauth', 'guest');
			OC_Util::addStyle('settings', 'oauth');
			$t->assign('consumer', $consumer);
			$t->printPage();
		}
	break;
	
	case 'access_token';
	break;
	
	default:
		// Something went wrong
		header('Location: /');
	break;
	
}