Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.4 KiB
50 lines
1.4 KiB
// Copyright 2017 The Gitea Authors. All rights reserved. |
|
// Use of this source code is governed by a MIT-style |
|
// license that can be found in the LICENSE file. |
|
|
|
package migrations |
|
|
|
import ( |
|
"time" |
|
|
|
"github.com/go-xorm/xorm" |
|
) |
|
|
|
func changeGPGKeysColumns(x *xorm.Engine) error { |
|
// EmailAddress is the list of all email addresses of a user. Can contain the |
|
// primary email address, but is not obligatory. |
|
type EmailAddress struct { |
|
ID int64 `xorm:"pk autoincr"` |
|
UID int64 `xorm:"INDEX NOT NULL"` |
|
Email string `xorm:"UNIQUE NOT NULL"` |
|
IsActivated bool |
|
IsPrimary bool `xorm:"-"` |
|
} |
|
|
|
// GPGKey represents a GPG key. |
|
type GPGKey struct { |
|
ID int64 `xorm:"pk autoincr"` |
|
OwnerID int64 `xorm:"INDEX NOT NULL"` |
|
KeyID string `xorm:"INDEX CHAR(16) NOT NULL"` |
|
PrimaryKeyID string `xorm:"CHAR(16)"` |
|
Content string `xorm:"TEXT NOT NULL"` |
|
Created time.Time `xorm:"-"` |
|
CreatedUnix int64 |
|
Expired time.Time `xorm:"-"` |
|
ExpiredUnix int64 |
|
Added time.Time `xorm:"-"` |
|
AddedUnix int64 |
|
SubsKey []*GPGKey `xorm:"-"` |
|
Emails []*EmailAddress |
|
CanSign bool |
|
CanEncryptComms bool |
|
CanEncryptStorage bool |
|
CanCertify bool |
|
} |
|
|
|
if err := x.DropTables(new(GPGKey)); err != nil { |
|
return err |
|
} |
|
|
|
return x.Sync(new(GPGKey)) |
|
}
|
|
|