DBVersion000007.class.php (1056B)
1 <?php 2 3 namespace cms\update\version; 4 5 use database\DbVersion; 6 use database\Column; 7 use security\Password; 8 9 /** 10 * Security enhancements. 11 * 12 * @author dankert 13 * 14 */ 15 class DBVersion000007 extends DbVersion 16 { 17 public function update() 18 { 19 $table = $this->table('user'); 20 $table->column('otp_secret' )->type(Column::TYPE_VARCHAR)->size(255)->nullable()->add(); 21 22 $tableName = $table->getSqlName(); 23 $db = $this->getDb(); 24 $stmt = $db->sql('SELECT id FROM '.$tableName); 25 foreach($stmt->getCol() as $userid ) 26 { 27 $secret = Password::randomHexString(64); 28 $stmt = $db->sql('UPDATE '.$tableName.' SET otp_secret={secret} WHERE id={id}'); 29 $stmt->setString('secret',$secret); 30 $stmt->setInt('id',$userid); 31 $stmt->execute(); 32 } 33 34 $table->column('totp' )->type(Column::TYPE_INT )->size( 1)->defaultValue( 0)->add(); 35 $table->column('hotp_counter')->type(Column::TYPE_INT )->size( 0)->defaultValue( 0)->add(); 36 $table->column('hotp' )->type(Column::TYPE_INT )->size( 1)->defaultValue( 0)->add(); 37 38 } 39 }