Add metadata handling
This commit is contained in:
parent
c7003f5c80
commit
1908474e2d
55
main.go
55
main.go
|
@ -191,6 +191,61 @@ func Bump(username string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Metadata struct {
|
||||||
|
MetaKey string `db:meta_key`
|
||||||
|
MetaValue string `db:meta_value`
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetAllMeta(username string) (map[string]string) {
|
||||||
|
meta:=make(map[string]string)
|
||||||
|
q:=fmt.Sprintf(`select meta_key, meta_value
|
||||||
|
from %s_user_metadata where
|
||||||
|
user_id=(select userid from %s_auth where username=?)`,
|
||||||
|
c.TablePrefix, c.TablePrefix)
|
||||||
|
rows,err:=c.db.Queryx(q, username)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("scsusers.GetAllMeta: %s: %s\n", username, err.Error())
|
||||||
|
return meta
|
||||||
|
}
|
||||||
|
var m Metadata
|
||||||
|
for rows.Next() {
|
||||||
|
err=rows.StructScan(&m)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("scsusers.GetAllMeta: StructScan: %s\n", username, err.Error())
|
||||||
|
return meta
|
||||||
|
}
|
||||||
|
meta[m.MetaKey]=m.MetaValue
|
||||||
|
}
|
||||||
|
return meta
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetMeta(username string, metakey string) string {
|
||||||
|
var v string
|
||||||
|
q:=fmt.Sprintf(`select meta_value from %s_user_metadata where
|
||||||
|
user_id=(select userid from %s_auth where username=?) AND meta_key=?`, c.TablePrefix, c.TablePrefix)
|
||||||
|
err:=c.db.Get(&v, q, username, metakey)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("scsusers.GetMeta: %s - %s - %s\n", username, metakey, err.Error())
|
||||||
|
}
|
||||||
|
return v
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetMeta(username string, metakey string, metavalue string) {
|
||||||
|
var err error
|
||||||
|
if metavalue=="" {
|
||||||
|
q:=fmt.Sprintf(`delete from %s_user_metadata where user_id=(select userid from %s_auth where username=?) AND meta_key=?`,
|
||||||
|
c.TablePrefix, c.TablePrefix)
|
||||||
|
_, err=c.db.Exec(q, username, metakey)
|
||||||
|
} else {
|
||||||
|
q:=fmt.Sprintf(`insert into %s_user_metadata (user_id, meta_key, meta_value) VALUES
|
||||||
|
((select userid from %s_auth where username=?), ?, ?)`, c.TablePrefix, c.TablePrefix)
|
||||||
|
_,err=c.db.Exec(q, username, metakey, metavalue)
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("scsusers.SetMeta: %s %s %s %s\n", username, metakey, metavalue, err.Error())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func GetRoles(username string) []string {
|
func GetRoles(username string) []string {
|
||||||
var roles []string
|
var roles []string
|
||||||
q:=fmt.Sprintf(`select role_name from %s_roles
|
q:=fmt.Sprintf(`select role_name from %s_roles
|
||||||
|
|
Loading…
Reference in New Issue