42 lines
1 KiB
Go
42 lines
1 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/nspcc-dev/neo-go/pkg/interop"
|
|
"github.com/nspcc-dev/neo-go/pkg/interop/storage"
|
|
)
|
|
|
|
func CreateUser(login string, password interop.Hash256) {
|
|
ctx := storage.GetContext()
|
|
storedValue := storage.Get(ctx, login).(interop.Hash256)
|
|
if storedValue != nil {
|
|
panic("This user already exists")
|
|
} else {
|
|
storage.Put(ctx, login, password)
|
|
}
|
|
}
|
|
|
|
func CheckUser(login string, givenPassword interop.Hash256) {
|
|
ctx := storage.GetReadOnlyContext()
|
|
password := storage.Get(ctx, login).(interop.Hash256)
|
|
if password == nil {
|
|
panic("This user does not exist")
|
|
}
|
|
if !password.Equals(givenPassword) {
|
|
panic("Password hashes does not match")
|
|
}
|
|
}
|
|
|
|
func DeleteUser(login string) {
|
|
ctx := storage.GetContext()
|
|
storage.Delete(ctx, login)
|
|
}
|
|
|
|
func UpdateUser(login string, password interop.Hash256) {
|
|
ctx := storage.GetContext()
|
|
storedValue := storage.Get(ctx, login).(interop.Hash256)
|
|
if storedValue == nil {
|
|
panic("This user does not exist")
|
|
} else {
|
|
storage.Put(ctx, login, password)
|
|
}
|
|
}
|