forked from nursit/magiclogin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
magiclogin_options.php
195 lines (170 loc) · 4.85 KB
/
magiclogin_options.php
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
<?php
/**
* Fonctions utiles au plugin MagicLogin
*
* @plugin MagicLogin
* @copyright 2013
* @author Cédric
* @licence GNU/GPL
* @package SPIP\Magiclogin\Fonctions
*/
if (!defined('_ECRIRE_INC_VERSION')) return;
// pour desactiver la verification du certificat de securite dans l'auth via google
// define('_MAGICLOGIN_IGNORE_SSL_VERIFYPEER',true);
function magiclogin_ok(){
if (magiclogin_facebook_ok() OR magiclogin_google_ok() OR magiclogin_twitter_ok() OR magiclogin_persona_ok())
return ' ';
return '';
}
/**
* verifier que FB est configure
* @return string
*/
function magiclogin_facebook_ok(){
include_spip("inc/config");
if (lire_config('magiclogin/activer_facebook','oui')=='oui'
AND lire_config('magiclogin/facebook_consumer_key')
AND lire_config('magiclogin/facebook_consumer_secret'))
return ' ';
return '';
}
/**
* verifier que Google est configure
* @return string
*/
function magiclogin_google_ok(){
include_spip("inc/config");
if (lire_config('magiclogin/activer_google','oui')=='oui'
AND lire_config('magiclogin/google_client_id')
AND lire_config('magiclogin/google_client_secret')
AND lire_config('magiclogin/google_api_key'))
return ' ';
return '';
}
/**
* Verifier que Twitter est configure
* @return string
*/
function magiclogin_twitter_ok(){
if (!defined("_DIR_PLUGIN_TWITTER"))
return '';
include_spip("inc/config");
if (lire_config('magiclogin/activer_twitter','oui')=='oui'
AND lire_config('microblog/twitter_consumer_key')
AND lire_config('microblog/twitter_consumer_secret'))
return ' ';
return '';
}
function magiclogin_persona_ok(){
include_spip("inc/config");
if (lire_config('magiclogin/activer_persona','oui')=='oui')
return ' ';
return '';
}
/**
* Inserer la css de Persona dans le head
* @param string $flux
* @return string
*/
function magiclogin_insert_head_css($flux){
$flux .= '<link rel="stylesheet" href="'.find_in_path("css/magiclogin.css").'" type="text/css">';
return $flux;
}
/**
* Inserer le javascript de Persona dans le head
* @param string $flux
* @return string
*/
function magiclogin_insert_head($flux){
$flux .= '<script src="'.find_in_path("javascript/persona.js").'" type="text/javascript"></script>';
return $flux;
}
/**
* Balise #LOGIN_LINKS qui affiche les liens de connexion si on est pas deja identifie
*
* @param $p
* @return mixed
*/
function balise_LOGIN_LINKS_dist($p) {
$_target_url = interprete_argument_balise(1,$p);
if (!$_target_url AND $_target_url!="''"){
$_target_url = "";
}
else
$_target_url = "\''.addslashes($_target_url).'\'";
$p->code = "'<!--magiclogin--><' . '"."?php echo magiclogin_login_links($_target_url); ?'.'>'";
$p->interdire_scripts = false;
return $p;
}
/**
* Fonction appelee par la balise #LOGIN_LINKS, par commodite
* @param string $target_url
* @return array|string
*/
function magiclogin_login_links($target_url=''){
// if already connected : empty return
if (isset($GLOBALS['visiteur_session']['statut'])
AND $GLOBALS['visiteur_session']['statut'])
return '';
return recuperer_fond("inclure/login_links",array('url'=>$target_url));
}
/**
* Balise #LOGOUT_LINK qui affiche le lien de deconexion si on est identifie
* @param $p
* @return mixed
*/
function balise_LOGOUT_LINK_dist($p) {
$_target_url = interprete_argument_balise(1,$p);
if (!$_target_url AND $_target_url!="''"){
$_target_url = "";
}
else
$_target_url = "\''.addslashes($_target_url).'\'";
$p->code = "'<!--magiclogin--><' . '"."?php echo magiclogin_logout_link($_target_url); ?'.'>'";
$p->interdire_scripts = false;
return $p;
}
/**
* Fonction appelee par la balise #LOGOUT_LINK par commodite
* @param string $target_url
* @return array|string
*/
function magiclogin_logout_link($target_url=''){
// if not connected : empty return
if (!isset($GLOBALS['visiteur_session']['statut'])
OR !$GLOBALS['visiteur_session']['statut'])
return '';
return recuperer_fond("inclure/logout_link",array('url'=>$target_url));
}
/**
* Filtre pour afficher une partie du code secret de l'app FB (plus pratique que input type="password"
* @param string $secret
* @return string
*/
function magiclogin_masquer_secret($secret){
$affiche = "";
if (strlen($secret))
$affiche = substr($secret,0,4).str_pad("*",strlen($secret)-8,"*").substr($secret,-4);
return $affiche;
}
/**
* Ajouter les liens de login rapide dans le form de login
* @param $flux
* @return mixed
*/
function magiclogin_formulaire_fond($flux){
// determiner le nom du formulaire
$form = $flux['args']['form'];
if ($form=="login") {
if (magiclogin_ok()){
$links = magiclogin_login_links(_request('url'));
// trouver le dernier fieldset, puis le premier input apres : c'est le bouton
$pf = strripos($flux['data'],"</fieldset>");
if ($pi = stripos($flux['data'],"<p",$pf)){
$flux['data'] = substr_replace($flux['data'],$links,$pi,0);
}
}
}
return $flux;
}
?>