add new decrypt encrypt function to member

This commit is contained in:
Adrian Zürcher
2025-11-20 15:17:44 +01:00
parent 11b9c61113
commit 3b804ff8d1
4 changed files with 185 additions and 147 deletions

View File

@@ -1,5 +1,10 @@
package models
import (
"gitea.tecamino.com/paadi/memberDB/crypto"
"gitea.tecamino.com/paadi/memberDB/utils"
)
type Member struct {
Id int `gorm:"primaryKey" json:"id,omitempty"`
FirstName string `gorm:"column:firstName" json:"firstName,omitempty"`
@@ -22,3 +27,146 @@ type Member struct {
Comment string `gorm:"column:comment" json:"comment,omitempty"`
Events []*Event `gorm:"many2many:member_events;" `
}
func (m *Member) Encrypt(token []byte) (err error) {
m.FirstNameHash = utils.HashField(m.FirstName, token)
m.FirstName, err = crypto.Encrypt(m.FirstName, token)
if err != nil {
return
}
m.LastNameHash = utils.HashField(m.LastName, token)
m.LastName, err = crypto.Encrypt(m.LastName, token)
if err != nil {
return
}
m.BirthdayHash = utils.HashField(m.Birthday, token)
m.Birthday, err = crypto.Encrypt(m.Birthday, token)
if err != nil {
return
}
m.Address, err = crypto.Encrypt(m.Address, token)
if err != nil {
return
}
m.Zip, err = crypto.Encrypt(m.Zip, token)
if err != nil {
return
}
m.Town, err = crypto.Encrypt(m.Town, token)
if err != nil {
return
}
m.Phone, err = crypto.Encrypt(m.Phone, token)
if err != nil {
return
}
m.Email, err = crypto.Encrypt(m.Email, token)
if err != nil {
return
}
m.FirstVisit, err = crypto.Encrypt(m.FirstVisit, token)
if err != nil {
return
}
m.LastVisit, err = crypto.Encrypt(m.LastVisit, token)
if err != nil {
return
}
m.Comment, err = crypto.Encrypt(m.Comment, token)
if err != nil {
return
}
return
}
func (m *Member) Decrypt(token []byte) (err error) {
if m.FirstName != "" {
m.FirstName, err = crypto.Decrypt(m.FirstName, token)
if err != nil {
return
}
}
if m.LastName != "" {
m.LastName, err = crypto.Decrypt(m.LastName, token)
if err != nil {
return
}
}
if m.Birthday != "" {
m.Birthday, err = crypto.Decrypt(m.Birthday, token)
if err != nil {
return
}
}
if m.Address != "" {
m.Address, err = crypto.Decrypt(m.Address, token)
if err != nil {
return
}
}
if m.Zip != "" {
m.Zip, err = crypto.Decrypt(m.Zip, token)
if err != nil {
return
}
}
if m.Town != "" {
m.Town, err = crypto.Decrypt(m.Town, token)
if err != nil {
return
}
}
if m.Phone != "" {
m.Phone, err = crypto.Decrypt(m.Phone, token)
if err != nil {
return
}
}
if m.Email != "" {
m.Email, err = crypto.Decrypt(m.Email, token)
if err != nil {
return
}
}
if m.FirstVisit != "" {
m.FirstVisit, err = crypto.Decrypt(m.FirstVisit, token)
if err != nil {
return
}
}
if m.LastVisit != "" {
m.LastVisit, err = crypto.Decrypt(m.LastVisit, token)
if err != nil {
return
}
}
if m.Comment != "" {
m.Comment, err = crypto.Decrypt(m.Comment, token)
if err != nil {
return
}
}
return
}