diff options
author | Mario <mario@mariovavti.com> | 2018-05-20 22:42:47 +0200 |
---|---|---|
committer | Mario <mario@mariovavti.com> | 2018-05-20 22:42:47 +0200 |
commit | 469809183d232761b8984848c133f9f11f5e7cea (patch) | |
tree | 5d072666809f6087bd5dc37e5939fed3305e031e | |
parent | 55e1026c986f1c2c7e2a0376579b01111a93ab5d (diff) | |
download | volse-hubzilla-469809183d232761b8984848c133f9f11f5e7cea.tar.gz volse-hubzilla-469809183d232761b8984848c133f9f11f5e7cea.tar.bz2 volse-hubzilla-469809183d232761b8984848c133f9f11f5e7cea.zip |
update oauth related tables to use bigint/int(10) for user_id column. this is to be more consistent with the rest of the tables and fixes issue #1180
-rw-r--r-- | Zotlabs/Module/Settings/Oauth2.php | 3 | ||||
-rw-r--r-- | Zotlabs/Update/_1214.php | 57 | ||||
-rwxr-xr-x | boot.php | 2 | ||||
-rw-r--r-- | install/schema_mysql.sql | 8 | ||||
-rw-r--r-- | install/schema_postgres.sql | 8 |
5 files changed, 68 insertions, 10 deletions
diff --git a/Zotlabs/Module/Settings/Oauth2.php b/Zotlabs/Module/Settings/Oauth2.php index 8db5c14aa..985095115 100644 --- a/Zotlabs/Module/Settings/Oauth2.php +++ b/Zotlabs/Module/Settings/Oauth2.php @@ -14,7 +14,8 @@ class Oauth2 { $key = $_POST['remove']; q("DELETE FROM tokens WHERE id='%s' AND uid=%d", dbesc($key), - local_channel()); + intval(local_channel()) + ); goaway(z_root()."/settings/oauth2/"); return; } diff --git a/Zotlabs/Update/_1214.php b/Zotlabs/Update/_1214.php new file mode 100644 index 000000000..06e5d96ed --- /dev/null +++ b/Zotlabs/Update/_1214.php @@ -0,0 +1,57 @@ +<?php + +namespace Zotlabs\Update; + +class _1214 { + + function run() { + if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) { + q("START TRANSACTION"); + + $r1 = q("ALTER TABLE oauth_clients ALTER COLUMN user_id TYPE bigint USING user_id::bigint"); + $r2 = q("ALTER TABLE oauth_clients ALTER COLUMN user_id SET NOT NULL"); + $r3 = q("ALTER TABLE oauth_clients ALTER COLUMN user_id SET DEFAULT 0"); + + $r4 = q("ALTER TABLE oauth_access_tokens ALTER COLUMN user_id TYPE bigint USING user_id::bigint"); + $r5 = q("ALTER TABLE oauth_access_tokens ALTER COLUMN user_id SET NOT NULL"); + $r6 = q("ALTER TABLE oauth_access_tokens ALTER COLUMN user_id SET DEFAULT 0"); + + $r7 = q("ALTER TABLE oauth_authorization_codes ALTER COLUMN user_id TYPE bigint USING user_id::bigint"); + $r8 = q("ALTER TABLE oauth_authorization_codes ALTER COLUMN user_id SET NOT NULL"); + $r9 = q("ALTER TABLE oauth_authorization_codes ALTER COLUMN user_id SET DEFAULT 0"); + + $r10 = q("ALTER TABLE oauth_refresh_tokens ALTER COLUMN user_id TYPE bigint USING user_id::bigint"); + $r11 = q("ALTER TABLE oauth_refresh_tokens ALTER COLUMN user_id SET NOT NULL"); + $r12 = q("ALTER TABLE oauth_refresh_tokens ALTER COLUMN user_id SET DEFAULT 0"); + + + if($r1 && $r2 && $r3 && $r4 && $r5 && $r6 && $r7 && $r8 && $r9 && $r10 && $r11 && $r12) { + q("COMMIT"); + return UPDATE_SUCCESS; + } + else { + q("ROLLBACK"); + return UPDATE_FAILED; + } + } + else { + q("START TRANSACTION"); + + $r1 = q("ALTER TABLE oauth_clients MODIFY COLUMN user_id int(10) unsigned NOT NULL DEFAULT 0"); + $r2 = q("ALTER TABLE oauth_access_tokens MODIFY COLUMN user_id int(10) unsigned NOT NULL DEFAULT 0"); + $r3 = q("ALTER TABLE oauth_authorization_codes MODIFY COLUMN user_id int(10) unsigned NOT NULL DEFAULT 0"); + $r4 = q("ALTER TABLE oauth_refresh_tokens MODIFY COLUMN user_id int(10) unsigned NOT NULL DEFAULT 0"); + + if($r1 && $r2 && $r3 && $r4) { + q("COMMIT"); + return UPDATE_SUCCESS; + } + else { + q("ROLLBACK"); + return UPDATE_FAILED; + } + + } + } + +} @@ -54,7 +54,7 @@ define ( 'STD_VERSION', '3.5.6' ); define ( 'ZOT_REVISION', '6.0a' ); -define ( 'DB_UPDATE_VERSION', 1213 ); +define ( 'DB_UPDATE_VERSION', 1214 ); define ( 'PROJECT_BASE', __DIR__ ); diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index 9bf91fc51..9685a878e 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -1606,14 +1606,14 @@ CREATE TABLE if not exists oauth_clients ( redirect_uri VARCHAR(2000), grant_types VARCHAR(80), scope VARCHAR(4000), - user_id VARCHAR(80), + user_id int(10) unsigned NOT NULL DEFAULT 0, PRIMARY KEY (client_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE if not exists oauth_access_tokens ( access_token VARCHAR(40) NOT NULL, client_id VARCHAR(80) NOT NULL, - user_id VARCHAR(255), + user_id int(10) unsigned NOT NULL DEFAULT 0, expires TIMESTAMP NOT NULL, scope VARCHAR(4000), PRIMARY KEY (access_token) @@ -1622,7 +1622,7 @@ CREATE TABLE if not exists oauth_access_tokens ( CREATE TABLE if not exists oauth_authorization_codes ( authorization_code VARCHAR(40) NOT NULL, client_id VARCHAR(80) NOT NULL, - user_id VARCHAR(255), + user_id int(10) unsigned NOT NULL DEFAULT 0, redirect_uri VARCHAR(2000), expires TIMESTAMP NOT NULL, scope VARCHAR(4000), @@ -1633,7 +1633,7 @@ CREATE TABLE if not exists oauth_authorization_codes ( CREATE TABLE if not exists oauth_refresh_tokens ( refresh_token VARCHAR(40) NOT NULL, client_id VARCHAR(80) NOT NULL, - user_id VARCHAR(255), + user_id int(10) unsigned NOT NULL DEFAULT 0, expires TIMESTAMP NOT NULL, scope VARCHAR(4000), PRIMARY KEY (refresh_token) diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql index fb845ce9d..d4ffed130 100644 --- a/install/schema_postgres.sql +++ b/install/schema_postgres.sql @@ -1620,14 +1620,14 @@ CREATE TABLE oauth_clients ( redirect_uri VARCHAR(2000), grant_types VARCHAR(80), scope VARCHAR(4000), - user_id VARCHAR(80), + user_id bigint NOT NULL DEFAULT '0', PRIMARY KEY (client_id) ); CREATE TABLE oauth_access_tokens ( access_token VARCHAR(40) NOT NULL, client_id VARCHAR(80) NOT NULL, - user_id VARCHAR(255), + user_id bigint NOT NULL DEFAULT '0', expires TIMESTAMP NOT NULL, scope VARCHAR(4000), PRIMARY KEY (access_token) @@ -1636,7 +1636,7 @@ CREATE TABLE oauth_access_tokens ( CREATE TABLE oauth_authorization_codes ( authorization_code VARCHAR(40) NOT NULL, client_id VARCHAR(80) NOT NULL, - user_id VARCHAR(255), + user_id bigint NOT NULL DEFAULT '0', redirect_uri VARCHAR(2000), expires TIMESTAMP NOT NULL, scope VARCHAR(4000), @@ -1647,7 +1647,7 @@ CREATE TABLE oauth_authorization_codes ( CREATE TABLE oauth_refresh_tokens ( refresh_token VARCHAR(40) NOT NULL, client_id VARCHAR(80) NOT NULL, - user_id VARCHAR(255), + user_id bigint NOT NULL DEFAULT '0', expires TIMESTAMP NOT NULL, scope VARCHAR(4000), PRIMARY KEY (refresh_token) |