diff --git a/build/buttonstyle/isango.css b/build/buttonstyle/isango.css
index 6b09a01..2413606 100644
--- a/build/buttonstyle/isango.css
+++ b/build/buttonstyle/isango.css
@@ -147,6 +147,20 @@ a.isango_facebook:hover {
background: #34518d !important;
}
+a.isango_vkontakte {
+ background: #4c75a3 !important;
+ border: 1px solid #3c5c80 !important;
+ min-width: 100px;
+}
+
+a.isango_vkontakte span:before {
+ content: url("data:image/svg+xml;utf8,");
+}
+
+a.isango_vkontakte:hover {
+ background: #3c5c80 !important;
+}
+
a.isango_yahoo {
background: #5d0bed !important;
border: 1px solid #4a09bc !important;
diff --git a/build/buttonstyle/isango.css.map b/build/buttonstyle/isango.css.map
index 220d226..4d68352 100644
--- a/build/buttonstyle/isango.css.map
+++ b/build/buttonstyle/isango.css.map
@@ -1,6 +1,6 @@
{
"version": 3,
- "mappings": "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",
+ "mappings": "AAiDA,AACI,CADH,AACI,cAAc,CAAC;EACZ,MAAM,EAAE,IAAI;EACZ,aAAa,EAAE,GAAG;EAClB,OAAO,EAAE,QAAQ;EACjB,MAAM,EAAE,GAAG;EACX,OAAO,EAAE,YAAY;EACrB,WAAW,EAAE,MAAM;EACnB,KAAK,EAAE,gBAAgB;EACvB,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,QAAQ;CAqBvB;;AA/BL,AAYQ,CAZP,AACI,cAAc,AAWV,MAAM,CAAC;EACJ,eAAe,EAAE,IAAI;CAKxB;;AAlBT,AAcY,CAdX,AACI,cAAc,AAWV,MAAM,CAEH,IAAI,AAAA,OAAO,CAAA;EACP,SAAS,EAAE,aAAa;EACxB,UAAU,EAAE,QAAQ;CACvB;;AAjBb,AAoBQ,CApBP,AACI,cAAc,CAmBX,IAAI,CAAC;EACD,UAAU,EAAE,IAAI;EAChB,YAAY,EAAE,IAAI;CAQrB;;AA9BT,AAwBY,CAxBX,AACI,cAAc,CAmBX,IAAI,AAIC,OAAO,CAAC;EACL,UAAU,EAAE,QAAQ;EACpB,QAAQ,EAAE,QAAQ;EAClB,WAAW,EAAE,KAAK;EAClB,UAAU,EAAE,IAAI;CACnB;;AA7Bb,AAkCQ,CAlCP,AAkCQ,cAAc,CAAG;EACd,UAAU,EAlFP,OAAO,CAkF2B,UAAU;EAC/C,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAqC,CAAC,UAAU;EAClE,SAAS,EAAE,KAAK;CAOnB;;AA5CT,AAsCY,CAtCX,AAkCQ,cAAc,CAIX,IAAI,AAAA,OAAO,CAAC;EACR,OAAO,EA1CX,2nBAAoD;CA2CnD;;AAxCb,AAyCY,CAzCX,AAkCQ,cAAc,AAOV,MAAM,CAAA;EACH,UAAU,EAAE,OAAqC,CAAC,UAAU;CAC/D;;AA3Cb,AAkCQ,CAlCP,AAkCQ,iBAAiB,CAAA;EACd,UAAU,EA9EP,OAAO,CA8E2B,UAAU;EAC/C,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAqC,CAAC,UAAU;EAClE,SAAS,EAAE,KAAK;CAOnB;;AA5CT,AAsCY,CAtCX,AAkCQ,iBAAiB,CAId,IAAI,AAAA,OAAO,CAAC;EACR,OAAO,EA1CX,gQAAoD;CA2CnD;;AAxCb,AAyCY,CAzCX,AAkCQ,iBAAiB,AAOb,MAAM,CAAA;EACH,UAAU,EAAE,OAAqC,CAAC,UAAU;CAC/D;;AA3Cb,AAkCQ,CAlCP,AAkCQ,cAAc,CAAG;EACd,UAAU,EA1EP,OAAO,CA0E2B,UAAU;EAC/C,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAqC,CAAC,UAAU;EAClE,SAAS,EAAE,KAAK;CAOnB;;AA5CT,AAsCY,CAtCX,AAkCQ,cAAc,CAIX,IAAI,AAAA,OAAO,CAAC;EACR,OAAO,EA1CX,8bAAoD;CA2CnD;;AAxCb,AAyCY,CAzCX,AAkCQ,cAAc,AAOV,MAAM,CAAA;EACH,UAAU,EAAE,OAAqC,CAAC,UAAU;CAC/D;;AA3Cb,AAkCQ,CAlCP,AAkCQ,eAAe,CAAE;EACd,UAAU,EAtEP,OAAO,CAsE2B,UAAU;EAC/C,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAqC,CAAC,UAAU;EAClE,SAAS,EAAE,KAAK;CAOnB;;AA5CT,AAsCY,CAtCX,AAkCQ,eAAe,CAIZ,IAAI,AAAA,OAAO,CAAC;EACR,OAAO,EA1CX,mqBAAoD;CA2CnD;;AAxCb,AAyCY,CAzCX,AAkCQ,eAAe,AAOX,MAAM,CAAA;EACH,UAAU,EAAE,OAAqC,CAAC,UAAU;CAC/D;;AA3Cb,AAkCQ,CAlCP,AAkCQ,eAAe,CAAE;EACd,UAAU,EAlEP,OAAO,CAkE2B,UAAU;EAC/C,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAqC,CAAC,UAAU;EAClE,SAAS,EAAE,KAAK;CAOnB;;AA5CT,AAsCY,CAtCX,AAkCQ,eAAe,CAIZ,IAAI,AAAA,OAAO,CAAC;EACR,OAAO,EA1CX,wpBAAoD;CA2CnD;;AAxCb,AAyCY,CAzCX,AAkCQ,eAAe,AAOX,MAAM,CAAA;EACH,UAAU,EAAE,OAAqC,CAAC,UAAU;CAC/D;;AA3Cb,AAkCQ,CAlCP,AAkCQ,cAAc,CAAG;EACd,UAAU,EA9DP,OAAO,CA8D2B,UAAU;EAC/C,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAqC,CAAC,UAAU;EAClE,SAAS,EAAE,KAAK;CAOnB;;AA5CT,AAsCY,CAtCX,AAkCQ,cAAc,CAIX,IAAI,AAAA,OAAO,CAAC;EACR,OAAO,EA1CX,mkBAAoD;CA2CnD;;AAxCb,AAyCY,CAzCX,AAkCQ,cAAc,AAOV,MAAM,CAAA;EACH,UAAU,EAAE,OAAqC,CAAC,UAAU;CAC/D;;AA3Cb,AAkCQ,CAlCP,AAkCQ,gBAAgB,CAAC;EACd,UAAU,EA1DP,OAAO,CA0D2B,UAAU;EAC/C,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAqC,CAAC,UAAU;EAClE,SAAS,EAAE,KAAK;CAOnB;;AA5CT,AAsCY,CAtCX,AAkCQ,gBAAgB,CAIb,IAAI,AAAA,OAAO,CAAC;EACR,OAAO,EA1CX,qbAAoD;CA2CnD;;AAxCb,AAyCY,CAzCX,AAkCQ,gBAAgB,AAOZ,MAAM,CAAA;EACH,UAAU,EAAE,OAAqC,CAAC,UAAU;CAC/D;;AA3Cb,AAkCQ,CAlCP,AAkCQ,gBAAgB,CAAC;EACd,UAAU,EAtDP,OAAO,CAsD2B,UAAU;EAC/C,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAqC,CAAC,UAAU;EAClE,SAAS,EAAE,KAAK;CAOnB;;AA5CT,AAsCY,CAtCX,AAkCQ,gBAAgB,CAIb,IAAI,AAAA,OAAO,CAAC;EACR,OAAO,EA1CX,mSAAoD;CA2CnD;;AAxCb,AAyCY,CAzCX,AAkCQ,gBAAgB,AAOZ,MAAM,CAAA;EACH,UAAU,EAAE,OAAqC,CAAC,UAAU;CAC/D;;AA3Cb,AAkCQ,CAlCP,AAkCQ,iBAAiB,CAAA;EACd,UAAU,EAlDP,OAAO,CAkD2B,UAAU;EAC/C,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAqC,CAAC,UAAU;EAClE,SAAS,EAAE,KAAK;CAOnB;;AA5CT,AAsCY,CAtCX,AAkCQ,iBAAiB,CAId,IAAI,AAAA,OAAO,CAAC;EACR,OAAO,EA1CX,4rBAAoD;CA2CnD;;AAxCb,AAyCY,CAzCX,AAkCQ,iBAAiB,AAOb,MAAM,CAAA;EACH,UAAU,EAAE,OAAqC,CAAC,UAAU;CAC/D;;AA3Cb,AAkCQ,CAlCP,AAkCQ,aAAa,CAAI;EACd,UAAU,EA9CP,OAAO,CA8C2B,UAAU;EAC/C,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAqC,CAAC,UAAU;EAClE,SAAS,EAAE,KAAK;CAOnB;;AA5CT,AAsCY,CAtCX,AAkCQ,aAAa,CAIV,IAAI,AAAA,OAAO,CAAC;EACR,OAAO,EA1CX,uWAAoD;CA2CnD;;AAxCb,AAyCY,CAzCX,AAkCQ,aAAa,AAOT,MAAM,CAAA;EACH,UAAU,EAAE,OAAqC,CAAC,UAAU;CAC/D;;AAKb,AAAA,gBAAgB,AAAA,uBAAuB,CAAA;EACnC,gBAAgB,EAAE,62BAA62B;CACl4B",
"sources": [
"isango.scss"
],
diff --git a/build/buttonstyle/isango.scss b/build/buttonstyle/isango.scss
index cd6f914..b687585 100644
--- a/build/buttonstyle/isango.scss
+++ b/build/buttonstyle/isango.scss
@@ -31,6 +31,10 @@ $gateway-map: (
color: #4267b2,
icon: "M10.3 18.5H13V12h1.8l.2-2.3h-2V8.6c0-.6.1-.9.9-.9H15V5.5h-1.8c-2.2 0-2.9 1.1-2.9 2.9v1.4H9V12h1.3zM12 24C5.4 24 0 18.6 0 12S5.4 0 12 0s12 5.4 12 12-5.4 12-12 12z"
),
+ vkontakte: (
+ color: #4c75a3,
+ icon: "M12 0C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.6 0 12 0zm-.4 7.4c.7 0 .9 0 1.2.1.8.2.5.9.5 2.8 0 .6-.1 1.4.3 1.7.2.1.6 0 1.7-1.9.5-.9.9-1.9.9-1.9s.2-.2.3-.2c.1-.1.3-.1.3-.1h2.5s.7-.1.9.2c.1.4-.3 1.2-1.3 2.5-1.7 2.3-1.9 2.1-.5 3.3 1.3 1.2 1.6 1.8 1.6 1.9.5.9-.6 1-.6 1h-2.2s-.5.1-1.1-.3c-.8-.6-1.6-2-2.2-1.8-.6.2-.6 1.5-.6 1.5s0 .3-.1.4c-.2.2-.4.2-.4.2h-1s-2.2.1-4.1-1.9c-2.1-2.2-3.9-6.5-3.9-6.5s-.1-.3 0-.4c.1-.2.5-.2.5-.2h2.3s.2 0 .4.2c.1.1.2.3.2.3s.4 1 .9 1.8c1 1.7 1.4 2.1 1.8 1.9.5-.3.3-2.4.3-2.4s0-.8-.2-1.1c-.2-.3-.6-.3-.8-.4-.1 0 .1-.3.4-.5.4-.2 1.2-.2 2-.2z"
+ ),
yahoo: (
color: #5d0bed,
icon: "M12 0C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.6 0 12 0zm4 5.5h3l-2.5 6h-3l2.5-6zM5 7.9h2.8L9.5 12l1.7-4.1H14L9.5 18.5H6.7l1.4-3.3L5 7.9zm9.1 4.7c.9 0 1.6.7 1.6 1.6-.1.9-.8 1.6-1.6 1.6-.9 0-1.6-.7-1.6-1.6 0-.9.7-1.6 1.6-1.6z"
diff --git a/upload/inc/plugins/isango.php b/upload/inc/plugins/isango.php
index ddf07a4..32ab3c8 100644
--- a/upload/inc/plugins/isango.php
+++ b/upload/inc/plugins/isango.php
@@ -222,6 +222,12 @@ function isango_bridge()
// Get user information
$user = array();
+
+ // Hack the email from the flow, if available. Vkontakte doesn't provide email at API endpoint
+ if($mybb->input['gateway'] == 'vkontakte' && isset($data["email"])){
+ $user["email"] = $data["email"];
+ }
+
$conf = isango_config($mybb->input['gateway'], 'api');
if (is_string($conf['url'])) {
$conf['url'] = (array) $conf['url'];
@@ -475,6 +481,9 @@ function isango_curl(array $params, string $gateway, string $mode = 'api')
$header = array('Accept' => 'application/json'); // Default, override with config
if ($mode == 'api') {
$header['Authorization'] = 'Bearer ' . $params['code'];
+ if($gateway == 'vkontakte'){ // Header will not help carrying the access token for Vkontakte
+ curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(['access_token' => $params['code'], 'v' => '5.110']));
+ }
}
if (isset($conf['header']) && is_array($conf['header'])) {
diff --git a/upload/inc/plugins/isango/isango.css b/upload/inc/plugins/isango/isango.css
index 13785eb..841a32b 100644
--- a/upload/inc/plugins/isango/isango.css
+++ b/upload/inc/plugins/isango/isango.css
@@ -147,6 +147,20 @@ a.isango_facebook:hover {
background: #34518d !important;
}
+a.isango_vkontakte {
+ background: #4c75a3 !important;
+ border: 1px solid #3c5c80 !important;
+ min-width: 100px;
+}
+
+a.isango_vkontakte span:before {
+ content: url("data:image/svg+xml;utf8,");
+}
+
+a.isango_vkontakte:hover {
+ background: #3c5c80 !important;
+}
+
a.isango_yahoo {
background: #5d0bed !important;
border: 1px solid #4a09bc !important;
diff --git a/upload/inc/plugins/isango/vkontakte.ini b/upload/inc/plugins/isango/vkontakte.ini
new file mode 100644
index 0000000..a7d91bc
--- /dev/null
+++ b/upload/inc/plugins/isango/vkontakte.ini
@@ -0,0 +1,14 @@
+[auth]
+url = "https://oauth.vk.com/authorize"
+params[scope] = "email"
+
+[token]
+url = "https://oauth.vk.com/access_token"
+
+[api]
+url = "https://api.vk.com/method/getProfiles"
+
+[info]
+id = "{$u['response'][0]['id']}"
+name = "{$u['response'][0]['first_name']} {$u['response'][0]['last_name']}"
+email = "{$u['email']}"
\ No newline at end of file