@@ -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