From 7e1d0a81bfa4cade3498cb6c1ed6db09ae84fa68 Mon Sep 17 00:00:00 2001 From: kolaente Date: Sat, 9 May 2020 14:45:57 +0200 Subject: [PATCH] Change totp secret datatype from varchar to text --- pkg/migration/20200509103709.go | 43 +++++++++++++++++++++++++++++++++ pkg/user/totp.go | 2 +- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 pkg/migration/20200509103709.go diff --git a/pkg/migration/20200509103709.go b/pkg/migration/20200509103709.go new file mode 100644 index 0000000000..3ad77bb2f4 --- /dev/null +++ b/pkg/migration/20200509103709.go @@ -0,0 +1,43 @@ +// Vikunja is a to-do list application to facilitate your life. +// Copyright 2018-2020 Vikunja and contributors. All rights reserved. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +package migration + +import ( + "src.techknowlogick.com/xormigrate" + "xorm.io/xorm" +) + +type totp20200509103709 struct { + Secret string `xorm:"text not null" json:"secret"` +} + +func (t totp20200509103709) TableName() string { + return "totp" +} + +func init() { + migrations = append(migrations, &xormigrate.Migration{ + ID: "20200509103709", + Description: "Fix totp secret data type", + Migrate: func(tx *xorm.Engine) error { + return tx.Sync2(totp20200509103709{}) + }, + Rollback: func(tx *xorm.Engine) error { + return tx.DropTables(totp20200509103709{}) + }, + }) +} diff --git a/pkg/user/totp.go b/pkg/user/totp.go index 2f76a2ce00..eca41805b3 100644 --- a/pkg/user/totp.go +++ b/pkg/user/totp.go @@ -26,7 +26,7 @@ import ( type TOTP struct { ID int64 `xorm:"int(11) autoincr not null unique pk" json:"-"` UserID int64 `xorm:"int(11) not null" json:"-"` - Secret string `xorm:"varchar(20) not null" json:"secret"` + Secret string `xorm:"text not null" json:"secret"` // The totp entry will only be enabled after the user verified they have a working totp setup. Enabled bool `xorm:"null" json:"enabled"` // The totp url used to be able to enroll the user later