Skip to content

Commit 2cc9568

Browse files
committed
Add PostgreSQL support
1 parent 54ac5d9 commit 2cc9568

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

lib/Auth/Source/authtfaga.php

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,11 @@ private function createTables()
116116

117117
public function enable2fa($uid)
118118
{
119-
$q = "REPLACE INTO sspga_status (enable, uid) VALUES (1, '$uid')";
119+
if ($this->dbh->getAttribute(PDO::ATTR_DRIVER_NAME) == 'pgsql') {
120+
$q = "INSERT INTO sspga_status (uid, enable) values ('$uid', true) ON CONFLICT (uid) DO UPDATE SET enable=EXCLUDED.enable";
121+
} else {
122+
$q = "REPLACE INTO sspga_status (enable, uid) VALUES (1, '$uid')";
123+
}
120124
$result = $this->dbh->query($q);
121125
if($result===false) throw new Exception('Enable TFA failed '.$q);
122126
SimpleSAML_Logger::info('authtfaga: '.$uid.' turns ON the two-factor authentication.');
@@ -126,7 +130,11 @@ public function enable2fa($uid)
126130

127131
public function disable2fa($uid)
128132
{
129-
$q = "REPLACE INTO sspga_status (enable, uid) VALUES (0, '$uid')";
133+
if ($this->dbh->getAttribute(PDO::ATTR_DRIVER_NAME) == 'pgsql') {
134+
$q = "INSERT INTO sspga_status (uid, enable) values ('$uid', false) ON CONFLICT (ui) DO UPDATE SET enable=EXCLUDED.enable";
135+
} else {
136+
$q = "REPLACE INTO sspga_status (enable, uid) VALUES (0, '$uid')";
137+
}
130138
$this->dbh->query($q);
131139
SimpleSAML_Logger::info('authtfaga: '.$uid.' turns OFF the two-factor authentication.');
132140

@@ -149,7 +157,11 @@ public function registerGAkey($uid, $ga_id)
149157
return false;
150158
}
151159

152-
$q = 'REPLACE INTO sspga_gakeys (uid,gakey) VALUES ("'.$uid.'","'.$ga_id.'");';
160+
if ($this->dbh->getAttribute(PDO::ATTR_DRIVER_NAME) == 'pgsql') {
161+
$q = "INSERT INTO sspga_gakeys (uid, gakey) values ('$uid', '$ga_id') ON CONFLICT (gakey) DO UPDATE SET uid=EXCLUDED.uid";
162+
} else {
163+
$q = 'REPLACE INTO sspga_gakeys (uid,gakey) VALUES ("'.$uid.'","'.$ga_id.'");';
164+
}
153165
$this->dbh->query($q);
154166
SimpleSAML_Logger::info('authtfaga: '.$uid.' register his gakey: '.$ga_id);
155167

@@ -158,7 +170,11 @@ public function registerGAkey($uid, $ga_id)
158170

159171
public function deletegakey($uid, $ga_id)
160172
{
161-
$q = 'DELETE FROM sspga_gakeys WHERE uid="'.$uid.'" AND gakey="'.$ga_id.'";';
173+
if ($this->dbh->getAttribute(PDO::ATTR_DRIVER_NAME) == 'pgsql') {
174+
$q = "DELETE FROM sspga_gakeys WHERE uid='$uid' AND gakey='$ga_id'";
175+
} else {
176+
$q = 'DELETE FROM sspga_gakeys WHERE uid="'.$uid.'" AND gakey="'.$ga_id.'";';
177+
}
162178
$this->dbh->query($q);
163179
SimpleSAML_Logger::info('authtfaga: '.$uid.' delete his gakey: '.$ga_id);
164180

0 commit comments

Comments
 (0)