dolibarr  x.y.z
oauth.lib.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (C) 2012 Nicolas Villa aka Boyquotes http://informetic.fr
3  * Copyright (C) 2013 Florian Henry <florian.henry@opn-concept.pro>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <https://www.gnu.org/licenses/>.
17  */
18 
26 // Supported OAUTH (a provider is supported when a file xxx_oauthcallback.php is available into htdocs/core/modules/oauth)
27 $supportedoauth2array = array(
28  'OAUTH_GOOGLE_NAME'=>array('callbackfile' => 'google', 'picto' => 'google', 'urlforapp' => 'OAUTH_GOOGLE_DESC', 'name'=>'Google', 'urlforcredentials'=>'https://console.developers.google.com/', 'availablescopes'=> 'userinfo_email,userinfo_profile,openid,email,profile,cloud_print,admin_directory_user,gmail_full'),
29 );
30 if (isModEnabled('stripe')) {
31  $supportedoauth2array['OAUTH_STRIPE_TEST_NAME'] = array('callbackfile' => 'stripetest', 'picto' => 'stripe', 'urlforapp' => '', 'name'=>'StripeTest', 'urlforcredentials'=>'', 'availablescopes'=>'read_write');
32  $supportedoauth2array['OAUTH_STRIPE_LIVE_NAME'] = array('callbackfile' => 'stripelive', 'picto' => 'stripe', 'urlforapp' => '', 'name'=>'StripeLive', 'urlforcredentials'=>'', 'availablescopes'=>'read_write');
33 }
34 $supportedoauth2array['OAUTH_GITHUB_NAME'] = array('callbackfile' => 'github', 'picto' => 'github', 'urlforapp' => 'OAUTH_GITHUB_DESC', 'name'=>'GitHub', 'urlforcredentials'=>'https://github.com/settings/developers', 'availablescopes'=>'user,public_repo');
35 if (getDolGlobalInt('MAIN_FEATURES_LEVEL') >= 2) {
36  $supportedoauth2array['OAUTH_OTHER_NAME'] = array('callbackfile' => 'generic', 'picto' => 'generic', 'urlforapp' => 'OAUTH_OTHER_DESC', 'name'=>'Other', 'urlforcredentials'=>'', 'availablescopes'=>'Standard');
37 }
38 
39 
40 // API access parameters OAUTH
41 $list = array(
42  array(
43  'OAUTH_AMAZON_NAME',
44  'OAUTH_AMAZON_ID',
45  'OAUTH_AMAZON_SECRET',
46  ),
47  array(
48  'OAUTH_BITBUCKET_NAME',
49  'OAUTH_BITBUCKET_ID',
50  'OAUTH_BITBUCKET_SECRET',
51  ),
52  array(
53  'OAUTH_BITLY_NAME',
54  'OAUTH_BITLY_ID',
55  'OAUTH_BITLY_SECRET',
56  ),
57  array(
58  'OAUTH_BITRIX24_NAME',
59  'OAUTH_BITRIX24_ID',
60  'OAUTH_BITRIX24_SECRET',
61  ),
62  array(
63  'OAUTH_BOX_NAME',
64  'OAUTH_BOX_ID',
65  'OAUTH_BOX_SECRET',
66  ),
67  array(
68  'OAUTH_BUFFER_NAME',
69  'OAUTH_BUFFER_ID',
70  'OAUTH_BUFFER_SECRET',
71  ),
72  array(
73  'OAUTH_DAILYMOTION_NAME',
74  'OAUTH_DAILYMOTION_ID',
75  'OAUTH_DAILYMOTION_SECRET',
76  ),
77  array(
78  'OAUTH_DEVIANTART_NAME',
79  'OAUTH_DEVIANTART_ID',
80  'OAUTH_DEVIANTART_SECRET',
81  ),
82  array(
83  'OAUTH_DROPBOX_NAME',
84  'OAUTH_DROPBOX_ID',
85  'OAUTH_DROPBOX_SECRET',
86  ),
87  array(
88  'OAUTH_ETSY_NAME',
89  'OAUTH_ETSY_ID',
90  'OAUTH_ETSY_SECRET',
91  ),
92  array(
93  'OAUTH_EVEONLINE_NAME',
94  'OAUTH_EVEONLINE_ID',
95  'OAUTH_EVEONLINE_SECRET',
96  ),
97  array(
98  'OAUTH_FACEBOOK_NAME',
99  'OAUTH_FACEBOOK_ID',
100  'OAUTH_FACEBOOK_SECRET',
101  ),
102  array(
103  'OAUTH_FITBIT_NAME',
104  'OAUTH_FITBIT_ID',
105  'OAUTH_FITBIT_SECRET',
106  ),
107  array(
108  'OAUTH_FIVEHUNDREDPX_NAME',
109  'OAUTH_FIVEHUNDREDPX_ID',
110  'OAUTH_FIVEHUNDREDPX_SECRET',
111  ),
112  array(
113  'OAUTH_FLICKR_NAME',
114  'OAUTH_FLICKR_ID',
115  'OAUTH_FLICKR_SECRET',
116  ),
117  array(
118  'OAUTH_FOURSQUARE_NAME',
119  'OAUTH_FOURSQUARE_ID',
120  'OAUTH_FOURSQUARE_SECRET',
121  ),
122  array(
123  'OAUTH_GITHUB_NAME',
124  'OAUTH_GITHUB_ID',
125  'OAUTH_GITHUB_SECRET',
126  'OAUTH_GITHUB_DESC',
127  ),
128  array(
129  'OAUTH_GOOGLE_NAME',
130  'OAUTH_GOOGLE_ID',
131  'OAUTH_GOOGLE_SECRET',
132  'OAUTH_GOOGLE_DESC',
133  ),
134  array(
135  'OAUTH_HUBIC_NAME',
136  'OAUTH_HUBIC_ID',
137  'OAUTH_HUBIC_SECRET',
138  ),
139  array(
140  'OAUTH_INSTAGRAM_NAME',
141  'OAUTH_INSTAGRAM_ID',
142  'OAUTH_INSTAGRAM_SECRET',
143  ),
144  array(
145  'OAUTH_LINKEDIN_NAME',
146  'OAUTH_LINKEDIN_ID',
147  'OAUTH_LINKEDIN_SECRET',
148  ),
149  array(
150  'OAUTH_MAILCHIMP_NAME',
151  'OAUTH_MAILCHIMP_ID',
152  'OAUTH_MAILCHIMP_SECRET',
153  ),
154  array(
155  'OAUTH_MICROSOFT_NAME',
156  'OAUTH_MICROSOFT_ID',
157  'OAUTH_MICROSOFT_SECRET',
158  ),
159  array(
160  'OAUTH_NEST_NAME',
161  'OAUTH_NEST_ID',
162  'OAUTH_NEST_SECRET',
163  ),
164  array(
165  'OAUTH_NETATMO_NAME',
166  'OAUTH_NETATMO_ID',
167  'OAUTH_NETATMO_SECRET',
168  ),
169  array(
170  'OAUTH_PARROTFLOWERPOWER_NAME',
171  'OAUTH_PARROTFLOWERPOWER_ID',
172  'OAUTH_PARROTFLOWERPOWER_SECRET',
173  ),
174  array(
175  'OAUTH_PAYPAL_NAME',
176  'OAUTH_PAYPAL_ID',
177  'OAUTH_PAYPAL_SECRET',
178  ),
179  array(
180  'OAUTH_POCKET_NAME',
181  'OAUTH_POCKET_ID',
182  'OAUTH_POCKET_SECRET',
183  ),
184  array(
185  'OAUTH_QUICKBOOKS_NAME',
186  'OAUTH_QUICKBOOKS_ID',
187  'OAUTH_QUICKBOOKS_SECRET',
188  ),
189  array(
190  'OAUTH_REDDIT_NAME',
191  'OAUTH_REDDIT_ID',
192  'OAUTH_REDDIT_SECRET',
193  ),
194  array(
195  'OAUTH_REDMINE_NAME',
196  'OAUTH_REDMINE_ID',
197  'OAUTH_REDMINE_SECRET',
198  ),
199  array(
200  'OAUTH_RUNKEEPER_NAME',
201  'OAUTH_RUNKEEPER_ID',
202  'OAUTH_RUNKEEPER_SECRET',
203  ),
204  array(
205  'OAUTH_SCOOPIT_NAME',
206  'OAUTH_SCOOPIT_ID',
207  'OAUTH_SCOOPIT_SECRET',
208  ),
209  array(
210  'OAUTH_SOUNDCLOUD_NAME',
211  'OAUTH_SOUNDCLOUD_ID',
212  'OAUTH_SOUNDCLOUD_SECRET',
213  ),
214  array(
215  'OAUTH_SPOTIFY_NAME',
216  'OAUTH_SPOTIFY_ID',
217  'OAUTH_SPOTIFY_SECRET',
218  ),
219  array(
220  'OAUTH_STRAVA_NAME',
221  'OAUTH_STRAVA_ID',
222  'OAUTH_STRAVA_SECRET',
223  ),
224  array(
225  'OAUTH_STRIPE_TEST_NAME',
226  'OAUTH_STRIPE_TEST_ID',
227  'STRIPE_TEST_SECRET_KEY',
228  ),
229  array(
230  'OAUTH_STRIPE_LIVE_NAME',
231  'OAUTH_STRIPE_LIVE_ID',
232  'STRIPE_LIVE_SECRET_KEY',
233  ),
234  array(
235  'OAUTH_TUMBLR_NAME',
236  'OAUTH_TUMBLR_ID',
237  'OAUTH_TUMBLR_SECRET',
238  ),
239  array(
240  'OAUTH_TWITTER_NAME',
241  'OAUTH_TWITTER_ID',
242  'OAUTH_TWITTER_SECRET',
243  ),
244  array(
245  'OAUTH_USTREAM_NAME',
246  'OAUTH_USTREAM_ID',
247  'OAUTH_USTREAM_SECRET',
248  ),
249  array(
250  'OAUTH_VIMEO_NAME',
251  'OAUTH_VIMEO_ID',
252  'OAUTH_VIMEO_SECRET',
253  ),
254  array(
255  'OAUTH_YAHOO_NAME',
256  'OAUTH_YAHOO_ID',
257  'OAUTH_YAHOO_SECRET',
258  ),
259  array(
260  'OAUTH_YAMMER_NAME',
261  'OAUTH_YAMMER_ID',
262  'OAUTH_YAMMER_SECRET',
263  ),
264  array(
265  'OAUTH_OTHER_NAME',
266  'OAUTH_OTHER_ID',
267  'OAUTH_OTHER_SECRET',
268  ),
269 );
270 
271 
272 
279 {
280  global $langs, $conf;
281  $h = 0;
282  $head = array();
283 
284  $head[$h][0] = dol_buildpath('/admin/oauth.php', 1);
285  $head[$h][1] = $langs->trans("OAuthServices");
286  $head[$h][2] = 'services';
287  $h++;
288 
289  $head[$h][0] = dol_buildpath('/admin/oauthlogintokens.php', 1);
290  $head[$h][1] = $langs->trans("TokenManager");
291  $head[$h][2] = 'tokengeneration';
292  $h++;
293 
294  complete_head_from_modules($conf, $langs, null, $head, $h, 'oauthadmin');
295 
296  complete_head_from_modules($conf, $langs, null, $head, $h, 'oauthadmin', 'remove');
297 
298 
299  return $head;
300 }
getDolGlobalInt($key, $default=0)
Return dolibarr global constant int value.
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
complete_head_from_modules($conf, $langs, $object, &$head, &$h, $type, $mode='add', $filterorigmodule='')
Complete or removed entries into a head array (used to build tabs).
isModEnabled($module)
Is Dolibarr module enabled.
oauthadmin_prepare_head()
Return array of tabs to used on pages to setup cron module.
Definition: oauth.lib.php:278