mirror of
https://github.com/volatiletech/authboss.git
synced 2025-01-10 04:17:59 +02:00
de1c2ed081
- Change changelog format to use keepachangelog standard - Refactor the config to be made of substructs to help organize all the pieces - Add the new interfaces to the configuration - Clean up module loading (no unnecessary reflection to create new value) - Change User interface to have a Get/SetPID not E-mail/Username, this way we don't ever have to refer to one or the other, we just always assume pid. In the case of Confirm/Recover we'll have to make a GetEmail or there won't be a way for us to get the e-mail to send to. - Delete the xsrf nonsense in the core
54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
package authboss
|
|
|
|
// HTMLData is used to render templates with.
|
|
type HTMLData map[string]interface{}
|
|
|
|
// NewHTMLData creates HTMLData from key-value pairs. The input is a key-value
|
|
// slice, where odd elements are keys, and the following even element is their value.
|
|
func NewHTMLData(data ...interface{}) HTMLData {
|
|
if len(data)%2 != 0 {
|
|
panic("It should be a key value list of arguments.")
|
|
}
|
|
|
|
h := make(HTMLData)
|
|
|
|
for i := 0; i < len(data)-1; i += 2 {
|
|
k, ok := data[i].(string)
|
|
if !ok {
|
|
panic("Keys must be strings.")
|
|
}
|
|
|
|
h[k] = data[i+1]
|
|
}
|
|
|
|
return h
|
|
}
|
|
|
|
// Merge adds the data from other to h. If there are conflicting keys
|
|
// they are overwritten by other's values.
|
|
func (h HTMLData) Merge(other HTMLData) HTMLData {
|
|
for k, v := range other {
|
|
h[k] = v
|
|
}
|
|
return h
|
|
}
|
|
|
|
// MergeKV adds extra key-values to the HTMLData. The input is a key-value
|
|
// slice, where odd elements are keys, and the following even element is their value.
|
|
func (h HTMLData) MergeKV(data ...interface{}) HTMLData {
|
|
if len(data)%2 != 0 {
|
|
panic("It should be a key value list of arguments.")
|
|
}
|
|
|
|
for i := 0; i < len(data)-1; i += 2 {
|
|
k, ok := data[i].(string)
|
|
if !ok {
|
|
panic("Keys must be strings.")
|
|
}
|
|
|
|
h[k] = data[i+1]
|
|
}
|
|
|
|
return h
|
|
}
|