From 86acae60a2c6770f73d103fe20a8a755776d7916 Mon Sep 17 00:00:00 2001 From: netkas Date: Wed, 8 Jan 2025 15:02:44 -0500 Subject: [PATCH] Add support for authentication_otp database object --- .idea/sqldialects.xml | 1 + .../Resources/database/authentication_otp.sql | 18 ++++++++++++++++++ src/Socialbox/Enums/DatabaseObjects.php | 12 ++++++++++-- 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 src/Socialbox/Classes/Resources/database/authentication_otp.sql diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml index 4bbb771..38a0168 100644 --- a/.idea/sqldialects.xml +++ b/.idea/sqldialects.xml @@ -1,6 +1,7 @@ + diff --git a/src/Socialbox/Classes/Resources/database/authentication_otp.sql b/src/Socialbox/Classes/Resources/database/authentication_otp.sql new file mode 100644 index 0000000..788e100 --- /dev/null +++ b/src/Socialbox/Classes/Resources/database/authentication_otp.sql @@ -0,0 +1,18 @@ +create table authentication_otp +( + peer_uuid varchar(36) not null comment 'The Peer UUID associated with this record' + primary key comment 'The Peer UUID unique Index', + secret mediumtext not null comment 'The encrypted secret for the OTP', + updated timestamp default current_timestamp() not null comment 'The Timestamp for when the record was last updated', + constraint authentication_otp_peer_uuid_uindex + unique (peer_uuid) comment 'The Peer UUID unique Index', + constraint authentication_otp_registered_peers_uuid_fk + foreign key (peer_uuid) references registered_peers (uuid) + on update cascade on delete cascade +) + comment 'Table for housing encrypted OTP secrets for for verification'; + +create index authentication_otp_updated_index + on authentication_otp (updated) + comment 'The index for the updated column'; + diff --git a/src/Socialbox/Enums/DatabaseObjects.php b/src/Socialbox/Enums/DatabaseObjects.php index 14d7f8f..5a30afe 100644 --- a/src/Socialbox/Enums/DatabaseObjects.php +++ b/src/Socialbox/Enums/DatabaseObjects.php @@ -10,6 +10,7 @@ case REGISTERED_PEERS = 'registered_peers.sql'; case AUTHENTICATION_PASSWORDS = 'authentication_passwords.sql'; + case AUTHENTICATION_OTP = 'authentication_otp.sql'; case CAPTCHA_IMAGES = 'captcha_images.sql'; case SESSIONS = 'sessions.sql'; case EXTERNAL_SESSIONS = 'external_sessions.sql'; @@ -23,9 +24,16 @@ { return match ($this) { - self::VARIABLES, self::RESOLVED_DNS_RECORDS => 0, + self::VARIABLES, + self::RESOLVED_DNS_RECORDS => 0, + self::REGISTERED_PEERS => 1, - self::AUTHENTICATION_PASSWORDS, self::CAPTCHA_IMAGES, self::SESSIONS, self::EXTERNAL_SESSIONS => 2, + + self::AUTHENTICATION_PASSWORDS, + self::AUTHENTICATION_OTP, + self::CAPTCHA_IMAGES, + self::SESSIONS, + self::EXTERNAL_SESSIONS => 2, }; }