openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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 }