photoprism/internal/event/login.go
Michael Mayer 3c4cc40882 Security: Refactor log levels and events #98
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-10-10 16:34:07 +02:00

31 lines
902 B
Go

package event
import (
"github.com/sirupsen/logrus"
"github.com/photoprism/photoprism/pkg/txt"
)
// LoginData returns a login event message.
func LoginData(level logrus.Level, ip, realm, name, browser, message string) Data {
return Data{
"time": TimeStamp(),
"level": level.String(),
"ip": txt.Clip(ip, txt.ClipIP),
"realm": txt.Clip(realm, txt.ClipRealm),
"name": txt.Clip(name, txt.ClipUserName),
"browser": txt.Clip(browser, txt.ClipLog),
"message": txt.Clip(message, txt.ClipLog),
}
}
// LoginInfo publishes a successful login event.
func LoginInfo(ip, realm, name, browser string) {
Publish("login.info", LoginData(logrus.InfoLevel, ip, realm, name, browser, ""))
}
// LoginError publishes a login error event.
func LoginError(ip, realm, name, browser, error string) {
Publish("login.error", LoginData(logrus.ErrorLevel, ip, realm, name, browser, error))
}