photoprism/internal/event/login.go
Michael Mayer f5a8c5a45d Auth: Session and ACL enhancements #98 #1746
Signed-off-by: Michael Mayer <michael@photoprism.app>
2022-09-28 09:01:17 +02:00

30 lines
873 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, username, useragent, error string) Data {
return Data{
"time": TimeStamp(),
"level": level.String(),
"ip": txt.Clip(ip, txt.ClipIP),
"message": txt.Clip(error, txt.ClipLog),
"username": txt.Clip(username, txt.ClipUserName),
"useragent": txt.Clip(useragent, txt.ClipLog),
}
}
// LoginSuccess publishes a successful login event.
func LoginSuccess(ip, username, useragent string) {
Publish("audit.login", LoginData(logrus.InfoLevel, ip, username, useragent, ""))
}
// LoginError publishes a login error event.
func LoginError(ip, username, useragent, error string) {
Publish("audit.login", LoginData(logrus.ErrorLevel, ip, username, useragent, error))
}