source: extensions/oAuth/include/test/hybridauth/install.php @ 20293

Last change on this file since 20293 was 20293, checked in by mistic100, 12 years ago

first commit of oAuth plugin, still in developpement

File size: 17.7 KB
Line 
1<?php
2        $HYBRIDAUTH_VERSION = "2.1.1-dev";
3?><html> 
4<head>
5<title>HybridAuth Installer</title>
6<meta name="robots" content="NOINDEX, NOFOLLOW"> 
7<style type="text/css">
8#content {
9    background: none repeat scroll 0 0 #FFFFFF;
10    margin: 0 0 0 10px;
11    padding: 0;
12}
13.inputgnrc, select {
14    font-size: 15px;
15    padding: 6px 3px;
16    border: 1px solid #CCCCCC;
17    border-radius: 4px 4px 4px 4px;
18    color: #444444;
19    font-family: arial;
20    font-size: 16px;
21    margin: 0;
22    padding: 3px;
23    width: 300px;
24}
25.inputsave {
26    font-size: 15px;
27    padding: 6px 3px; 
28    color: #444444;
29    font-family: arial;
30    font-size: 18px;
31    margin: 0;
32    padding: 3px;
33    width: 400px;
34        height: 40px;
35}
36ul {
37    list-style: none outside none;
38}
39.cgfparams ul {
40    padding: 0;
41        margin: 0;
42}
43ul li {
44    color: #555555;
45    font-size: 12px;
46    margin-bottom: 10px;
47    padding: 0;
48}
49ul li label {
50    color: #000000;
51    display: block;
52    font-size: 14px;
53    font-weight: bold;
54        padding-bottom: 5px;
55}
56.cfg {
57        background: #f5f5f5;
58        float: left;
59        border-radius: 2px 2px 2px 2px;
60        border: 1px solid #AAAAAA;
61        margin: 0 0 0 30px;
62}
63.cgfparams {
64   padding: 20px;
65   float: left;
66}
67.cgftip {
68   border-left: 1px solid #aaa;
69   margin-left: 340px;
70   padding: 20px;
71   min-height: 202px;
72   width: 770px;
73   width: 600px;
74   
75   padding-top: 1px;
76}
77</style>
78</head>
79<body>
80<?php 
81        $CONFIG_TEMPLATE                = "";
82
83   /**
84        * Utility function, return the current url
85        */
86        function getCurrentUrl() 
87        {
88                if(
89                        isset( $_SERVER['HTTPS'] ) && ( $_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1 )
90                ||      isset( $_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'
91                ){
92                        $protocol = 'https://';
93                }
94                else {
95                        $protocol = 'http://';
96                }
97
98                $url = $protocol . $_SERVER['HTTP_HOST'];
99
100                // use port if non default
101                $url .= 
102                        isset( $_SERVER['SERVER_PORT'] ) 
103                        &&( ($protocol === 'http://' && $_SERVER['SERVER_PORT'] != 80) || ($protocol === 'https://' && $_SERVER['SERVER_PORT'] != 443) )
104                        ? ':' . $_SERVER['SERVER_PORT'] 
105                        : ''
106;
107                $url .= $_SERVER['PHP_SELF'];
108
109                // return current url
110                return $url;
111        }
112
113        $GLOBAL_HYBRID_AUTH_URL_BASE    = getCurrentUrl();
114        $GLOBAL_HYBRID_AUTH_URL_BASE    = str_ireplace( "install.php", "", $GLOBAL_HYBRID_AUTH_URL_BASE );
115        $GLOBAL_HYBRID_AUTH_PATH_BASE   = realpath( dirname( __FILE__ ) ) . "/";
116        $CONFIG_FILE_NAME               = $GLOBAL_HYBRID_AUTH_PATH_BASE . "config.php";
117
118        // deault providers
119        $PROVIDERS_CONFIG      = ARRAY(
120                                                                ARRAY( 
121                                                                        "label"             => "Facebook",
122                                                                        "provider_name"     => "Facebook", 
123                                                                        "require_client_id" => TRUE, 
124                                                                        "new_app_link"      => "https://www.facebook.com/developers/",
125                                                                        "userguide_section" => "http://hybridauth.sourceforge.net/userguide/IDProvider_info_Facebook.html",
126                                                                )
127                                                                ,
128                                                                ARRAY( 
129                                                                        "label"             => "Google",
130                                                                        "provider_name"     => "Google", 
131                                                                        "callback"          => TRUE,
132                                                                        "require_client_id" => TRUE, 
133                                                                        "new_app_link"      => "https://code.google.com/apis/console/",
134                                                                        "userguide_section" => "http://hybridauth.sourceforge.net/userguide/IDProvider_info_Google.html",
135                                                                ) 
136                                                                ,
137                                                                ARRAY( 
138                                                                        "label"             => "Twitter",
139                                                                        "provider_name"     => "Twitter", 
140                                                                        "new_app_link"      => "https://dev.twitter.com/apps",
141                                                                        "userguide_section" => "http://hybridauth.sourceforge.net/userguide/IDProvider_info_Twitter.html",
142                                                                )
143                                                                ,
144                                                                ARRAY( 
145                                                                        "label"             => "Yahoo",
146                                                                        "provider_name"     => "Yahoo!", 
147                                                                        "require_client_id" => TRUE, 
148                                                                        "new_app_link"      => "https://developer.apps.yahoo.com/dashboard/createKey.html",
149                                                                        "userguide_section" => "http://hybridauth.sourceforge.net/userguide/IDProvider_info_Yahoo.html",
150                                                                )
151                                                                ,
152                                                                ARRAY( 
153                                                                        "label"             => "Live",
154                                                                        "provider_name"     => "Windows Live", 
155                                                                        "require_client_id" => TRUE, 
156                                                                        "new_app_link"      => "https://manage.dev.live.com/ApplicationOverview.aspx",
157                                                                        "userguide_section" => "http://hybridauth.sourceforge.net/userguide/IDProvider_info_Live.html",
158                                                                )
159                                                                ,
160                                                                ARRAY( 
161                                                                        "label"             => "MySpace",
162                                                                        "provider_name"     => "MySpace", 
163                                                                        "new_app_link"      => "http://www.developer.myspace.com/",
164                                                                        "userguide_section" => "http://hybridauth.sourceforge.net/userguide/IDProvider_info_MySpace.html",
165                                                                )
166                                                                ,
167                                                                ARRAY( 
168                                                                        "label"             => "Foursquare",
169                                                                        "provider_name"     => "Foursquare", 
170                                                                        "require_client_id" => TRUE, 
171                                                                        "callback"          => TRUE,
172                                                                        "new_app_link"      => "https://www.foursquare.com/oauth/",
173                                                                        "userguide_section" => "http://hybridauth.sourceforge.net/userguide/IDProvider_info_Foursquare.html",
174                                                                )
175                                                                ,
176                                                                ARRAY( 
177                                                                        "label"             => "LinkedIn",
178                                                                        "provider_name"     => "LinkedIn", 
179                                                                        "new_app_link"      => "https://www.linkedin.com/secure/developer",
180                                                                        "userguide_section" => "http://hybridauth.sourceforge.net/userguide/IDProvider_info_LinkedIn.html",
181                                                                )
182                                                                ,
183                                                                ARRAY( 
184                                                                        "label"             => "OpenID",
185                                                                        "provider_name"     => "OpenID", 
186                                                                        "new_app_link"      => NULL,
187                                                                        "userguide_section" => "http://hybridauth.sourceforge.net/userguide/IDProvider_info_OpenID.html",
188                                                                )
189                                                                ,
190                                                                ARRAY( 
191                                                                        "label"             => "AOL",
192                                                                        "provider_name"     => "AOL", 
193                                                                        "new_app_link"      => NULL,
194                                                                        "userguide_section" => "http://hybridauth.sourceforge.net/userguide/IDProvider_info_AOL.html",
195                                                                )
196                                                        );
197
198        if( count( $_POST ) ):
199                $CONFIG_TEMPLATE = file_get_contents( "Hybrid/resources/config.php.tpl" );
200 
201                foreach( $_POST AS $k => $v ):
202                        $v = strip_tags( $v );
203                        $z = "#$k#";
204                       
205                        $CONFIG_TEMPLATE = str_replace( $z, $v, $CONFIG_TEMPLATE );
206                endforeach;
207
208                $CONFIG_TEMPLATE = str_replace( "<?php", "<?php\n\t#AUTOGENERATED BY HYBRIDAUTH $HYBRIDAUTH_VERSION INSTALLER - " . date("l jS \of F Y h:i:s A") . "\n", $CONFIG_TEMPLATE );
209
210                $is_installed = file_put_contents( $GLOBAL_HYBRID_AUTH_PATH_BASE . "config.php",  $CONFIG_TEMPLATE );
211
212                if( ! $is_installed ):
213        ?>
214                <p style='background-color:#EE3322;color:#FFFFFF;margin:1em 0;padding:0.8em;border:1px #C52F24 solid;'><strong>Installation Error: </strong> HybridAuth configuration file <span style='color:#000000;font-weight:normal;'><?php echo $CONFIG_FILE_NAME; ?></span> must be <b >WRITABLE</b> in order for the installer to work.</p>
215                <br />
216                Please try again!
217        <?php
218                else:
219        ?>
220                <center>
221                <table width="90%" border="0">
222                <tr>
223                <td align="left">
224                <div id="content">
225                        <p style='background-color:#390;color:#FFFFFF;margin:1em 0;padding:0.8em;border:1px #030 solid;'><strong>Installation completed: </strong> HybridAuth has been successfully installed on your web server.</p>
226
227                        <h1 style="margin-bottom: 15px;">HybridAuth <?php echo $HYBRIDAUTH_VERSION; ?> Installer</h1>
228                        <hr />
229                        <br />
230
231                        <ul style="list-style:disc inside;">
232                                <li style="color: #000000;font-size: 14px;"><b style="color:red">Don't forget to delete</b> "<b>install.php</b>".</li>
233                                <li style="color: #000000;font-size: 15px;">Visit the <a href="../examples/">examples</a> directory to try some working demos.</li>
234                                <li style="color: #000000;font-size: 15px;">Check out HybridAuth documentation at <a href="http://hybridauth.sourceforge.net">http://hybridauth.sourceforge.net</a>.</li>
235                        </ul>
236
237                        <br />                 
238                        <b style="font-size: 17px;">and that is it!</b>
239                <div>
240                </td>
241                </tr>
242                </table>
243                </div>
244        <?php
245                        endif;
246                die();
247        endif;
248?>
249<center>
250<table width="90%" border="0">
251<tr>
252<td align="left">
253
254<div id="content"> 
255        <?php
256                // check if php 5+. well donno the exact version to test, because it depend on which providers will be used..
257                if ( version_compare( PHP_VERSION, '5.2', '<=' ) ):
258        ?>
259                <p style='background-color:#EE3322;color:#FFFFFF;margin:1em 0;padding:0.8em;border:1px #C52F24 solid;'><strong>Error: </strong> HybridAuth requires PHP 5.2 or higher</p>
260        <?php
261                endif;
262        ?> 
263
264        <?php
265                // check config file is writable
266                if( ! is_writable( $CONFIG_FILE_NAME ) ):
267        ?>
268                <p style='background-color:#EE3322;color:#FFFFFF;margin:1em 0;padding:0.8em;border:1px #C52F24 solid;'><strong>Error: </strong> HybridAuth configuration file <span style='color:#000000;font-weight:normal;'><?php echo $CONFIG_FILE_NAME; ?></span> must be <b >WRITABLE</b> in order for the installer to work.</p>
269        <?php
270                endif;
271        ?> 
272
273        <?php
274                // check if curl is enabled
275                if( ! in_array  ( 'curl', get_loaded_extensions() ) ):
276        ?>
277                <p style='background-color:#EE3322;color:#FFFFFF;margin:1em 0;padding:0.8em;border:1px #C52F24 solid;'><strong>Error: </strong>HybridAuth will require to use <a href="http://php.net/manual/en/book.curl.php" style="color:white" target="_blank"><b>CURL library</b></a>. Please install/enable it before continuing.</p>
278        <?php
279                endif;
280        ?>
281
282        <?php
283                // warn if we are local
284                if( $_SERVER["SERVER_NAME"] == "localhost" || $_SERVER["SERVER_NAME"] == "127.0.0.1" ):
285        ?>
286                <p style='background-color:#F90;color:#FFFFFF;margin:1em 0;padding:0.8em;border:1px #F00 solid;'><strong>NOTE: </strong> HybridAuth will not work properly in localhost, as some social networks DO NOT TRUST localhost requests</p>
287        <?php
288                endif;
289        ?>
290
291<form method="post"> 
292        <h1 style="margin-bottom: 15px;">HybridAuth <?php echo $HYBRIDAUTH_VERSION; ?> Installer</h1>
293        <hr />
294
295        <h4>Important notices</h4>
296
297        <ul style="list-style:disc inside;">
298                <li style="color: #000000;font-size: 14px;">For security reason, please delete ("<b>install.php</b>") file as soon as you complete the installation process,</li>
299                <li style="color: #000000;font-size: 14px;">Using the HybridAuth installer will erase your existing configuration file. If you already have an old installation of HybridAuth you might want to keep a copy of <b>config.php</b>,</li>
300                <li style="color: #000000;font-size: 14px;">HybridAuth includes by default <?php echo count( $PROVIDERS_CONFIG ) + 1 ?> providers. If you want even more, please go to to HybridAuth web site and download the <a href="http://hybridauth.sourceforge.net/download.html">Additional Providers Package</a>.</li>
301                <li style="color: #000000;font-size: 14px;">Visit the <a href="http://hybridauth.sourceforge.net/#installer">HybridAuth</a> home page to make sure if there is a newer version.</li>
302        </ul>
303 
304        <h4>HybridAuth Endpoint</h4>
305 
306       
307        <ul style="list-style:circle inside;">
308                <li style="color: #000000;font-size: 14px;">HybridAuth endpoint url is where the index.php is located.</li>
309                <li style="color: #000000;font-size: 14px;">HybridAuth enpoint should be set to <b>+rx mode</b> (read and execute permissions)</li>
310        </ul>
311       
312        <div>
313                <div class="cfg">
314                   <div class="cgfparams">
315                          <ul>
316                                <li><label>HybridAuth Endpoint URL</label><input type="text" class="inputgnrc" value="<?php echo $GLOBAL_HYBRID_AUTH_URL_BASE; ?>" name="GLOBAL_HYBRID_AUTH_URL_BASE" style="min-width:600px;"></li>
317                          </ul>
318                   </div>
319                   <div class="cgftip" style="margin-left: 646px;padding: 20px;min-height: 60px;width: 300px;">
320                                Set the complete url to hybridauth core library on your website. 
321                                This URL will be used for many providers as the <a href="http://hybridauth.sourceforge.net/userguide/HybridAuth_endpoint_URL.html" target="_blank">Endpoint</a> for your website.
322                   </div>
323                </div>   
324        </div>
325        <br style="clear:both;"/>
326        <br />
327
328        <h4>Providers setup</h4>
329
330        <ul style="list-style:circle inside;">
331                <li style="color: #000000;font-size: 14px;">To correctly setup these Identity Providers please carefully follow the help section of each one.</li>
332                <li style="color: #000000;font-size: 14px;">If <b>Provider Adapter Satus</b> is set to <b style="color:red">Disabled</b> then users will not be able to login with this provider on you website.</li>
333        </ul>
334
335<?php
336        $nb_provider = 0;
337       
338        foreach( $PROVIDERS_CONFIG AS $item ):
339                $provider                   = @ $item["label"];
340                $provider_name              = @ $item["provider_name"];
341                $require_client_id          = @ $item["require_client_id"];
342                $provider_new_app_link      = @ $item["new_app_link"];
343                $provider_userguide_section = @ $item["userguide_section"];
344                $provider_callback_url      = "" ;
345
346                if( isset( $item["callback"] ) && $item["callback"] ){
347                        $provider_callback_url  = '<span style="color:green">' . $GLOBAL_HYBRID_AUTH_URL_BASE . '?hauth.done=' . $provider . '</span>';
348                }
349
350                $setupsteps = 0;
351?>
352        <h3 style="margin-left:30px;"><?php echo $provider_name ?></h3>
353        <div>
354                <div class="cfg">
355                   <div class="cgfparams">
356                          <ul>
357                                 <li><label><?php echo $provider_name ?> Adapter Satus</label>
358                                        <select name="<?php echo strtoupper( $provider ) ?>_ADAPTER_STATUS">
359                                                <option selected="selected" value="true">Enabled</option>
360                                                <option value="false">Disabled</option>
361                                        </select>
362                                </li>
363                                <?php if ( $provider_new_app_link ) : ?>
364                                        <?php if ( $require_client_id ) : ?>
365                                                <li><label>Application ID</label><input type="text" class="inputgnrc" value="" name="<?php echo strtoupper( $provider ) ?>_APPLICATION_APP_ID"    ></li>
366                                        <?php else: ?> 
367                                                <li><label>Application Key</label><input type="text" class="inputgnrc" value="" name="<?php echo strtoupper( $provider ) ?>_APPLICATION_KEY"    ></li>
368                                        <?php endif; ?> 
369                                        <li><label>Application Secret</label><input type="text" class="inputgnrc" value="" name="<?php echo strtoupper( $provider ) ?>_APPLICATION_SECRET" ></li>
370                                <?php endif; ?>
371                          </ul>
372                   </div>
373                   <div class="cgftip">
374                                <?php if ( $provider_new_app_link  ) : ?> 
375                                        <p><?php echo "<b>" . ++$setupsteps . "</b>." ?> Go to <a href="<?php echo $provider_new_app_link ?>" target ="_blanck"><?php echo $provider_new_app_link ?></a> and <b>create a new application</b>.</p>
376
377                                        <p><?php echo "<b>" . ++$setupsteps . "</b>." ?> Fill out any required fields such as the application name and description.</p>
378
379                                        <?php if ( $provider == "Google" ) : ?>
380                                                <p><?php echo "<b>" . ++$setupsteps . "</b>." ?> On the <b>"Create Client ID"</b> popup switch to advanced settings by clicking on <b>(more options)</b>.</p>
381                                        <?php endif; ?> 
382
383                                        <?php if ( $provider_callback_url ) : ?>
384                                                <p>
385                                                        <?php echo "<b>" . ++$setupsteps . "</b>." ?> Provide this URL as the Callback URL for your application:
386                                                        <br />
387                                                        <?php echo $provider_callback_url ?>
388                                                </p>
389                                        <?php endif; ?> 
390
391                                        <?php if ( $provider == "MySpace" ) : ?>
392                                                <p><?php echo "<b>" . ++$setupsteps . "</b>." ?> Put your website domain in the <b>External Url</b> and <b>External Callback Validation</b> fields. It should match with the current hostname <em style="color:#CB4B16;"><?php echo $_SERVER["SERVER_NAME"] ?></em>.</p>
393                                        <?php endif; ?> 
394
395                                        <?php if ( $provider == "Live" ) : ?>
396                                                <p><?php echo "<b>" . ++$setupsteps . "</b>." ?> Put your website domain in the <b>Redirect Domain</b> field. It should match with the current hostname <em style="color:#CB4B16;"><?php echo $_SERVER["SERVER_NAME"] ?></em>.</p>
397                                        <?php endif; ?> 
398
399                                        <?php if ( $provider == "Facebook" ) : ?>
400                                                <p><?php echo "<b>" . ++$setupsteps . "</b>." ?> Put your website domain in the <b>Site Url</b> field. It should match with the current hostname <em style="color:#CB4B16;"><?php echo $_SERVER["SERVER_NAME"] ?></em>.</p>
401                                        <?php endif; ?> 
402
403                                        <?php if ( $provider == "LinkedIn" ) : ?>
404                                                <p><?php echo "<b>" . ++$setupsteps . "</b>." ?> Put your website domain in the <b>Integration URL</b> field. It should match with the current hostname <em style="color:#CB4B16;"><?php echo $_SERVER["SERVER_NAME"] ?></em>.</p>
405                                                <p><?php echo "<b>" . ++$setupsteps . "</b>." ?> Set the <b>Application Type</b> to <em style="color:#CB4B16;">Web Application</em>.</p>
406                                        <?php endif; ?> 
407
408                                        <?php if ( $provider == "Yahoo" ) : ?>
409                                                <p><?php echo "<b>" . ++$setupsteps . "</b>." ?> Put your website domain in the <b>Application URL</b> and <b>Application Domain</b> fields. It should match with the current hostname <em style="color:#CB4B16;"><?php echo $_SERVER["SERVER_NAME"] ?></em>.</p>
410                                                <p><?php echo "<b>" . ++$setupsteps . "</b>." ?> Set the <b>Kind of Application</b> to <em style="color:#CB4B16;">Web-based</em>.</p>
411                                        <?php endif; ?> 
412
413                                        <?php if ( $provider == "Twitter" ) : ?>
414                                                <p><?php echo "<b>" . ++$setupsteps . "</b>." ?> Put your website domain in the <b>Application Website</b> and <b>Application Callback URL</b> fields. It should match with the current hostname <em style="color:#CB4B16;"><?php echo $_SERVER["SERVER_NAME"] ?></em>.</p>
415                                                <p><?php echo "<b>" . ++$setupsteps . "</b>." ?> Set the <b>Default Access Type</b> to <em style="color:#CB4B16;">Read, Write, & Direct Messages</em>.</p>
416                                        <?php endif; ?> 
417                                       
418                                        <p><?php echo "<b>" . ++$setupsteps . "</b>." ?> Once you have registered, copy and past the created application credentials into this setup page.</p> 
419                                <?php else: ?> 
420                                        <p>No registration required for OpenID based providers</p>
421                                <?php endif; ?> 
422                   </div>
423                </div>   
424        </div>
425        <br style="clear:both;"/>
426        <br />
427<?php
428        endforeach;
429?>
430        <br />
431        <div style="text-align:center">
432                Thanks for scrolling this far down! Now click the big button to complete the installation.
433                <br />
434                <br />
435                <input type="submit" class="inputsave" value="Setup HybridAuth" />
436        </div>
437</div>
438</form>
439
440 
441</td>
442</tr>
443</table>
444
445</div>
446
447</body>
448</html>
Note: See TracBrowser for help on using the repository browser.