mirror of
https://github.com/hrfee/jfa-go.git
synced 2024-12-22 17:10:10 +00:00
activity: log creations
This commit is contained in:
parent
69dcaf3797
commit
2c787b4d46
28
api-users.go
28
api-users.go
@ -9,6 +9,7 @@ import (
|
|||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/golang-jwt/jwt"
|
"github.com/golang-jwt/jwt"
|
||||||
"github.com/hrfee/mediabrowser"
|
"github.com/hrfee/mediabrowser"
|
||||||
|
"github.com/lithammer/shortuuid/v3"
|
||||||
"github.com/timshannon/badgerhold/v4"
|
"github.com/timshannon/badgerhold/v4"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -45,6 +46,16 @@ func (app *appContext) NewUserAdmin(gc *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
id := user.ID
|
id := user.ID
|
||||||
|
|
||||||
|
// Record activity
|
||||||
|
app.storage.SetActivityKey(shortuuid.New(), Activity{
|
||||||
|
Type: ActivityCreation,
|
||||||
|
UserID: id,
|
||||||
|
SourceType: ActivityAdmin,
|
||||||
|
Source: gc.GetString("jfId"),
|
||||||
|
Time: time.Now(),
|
||||||
|
})
|
||||||
|
|
||||||
profile := app.storage.GetDefaultProfile()
|
profile := app.storage.GetDefaultProfile()
|
||||||
if req.Profile != "" && req.Profile != "none" {
|
if req.Profile != "" && req.Profile != "none" {
|
||||||
if p, ok := app.storage.GetProfileKey(req.Profile); ok {
|
if p, ok := app.storage.GetProfileKey(req.Profile); ok {
|
||||||
@ -303,6 +314,23 @@ func (app *appContext) newUser(req newUserDTO, confirmed bool) (f errorFunc, suc
|
|||||||
}
|
}
|
||||||
id := user.ID
|
id := user.ID
|
||||||
|
|
||||||
|
// Record activity
|
||||||
|
sourceType := ActivityAnon
|
||||||
|
source := ""
|
||||||
|
if invite.ReferrerJellyfinID != "" {
|
||||||
|
sourceType = ActivityUser
|
||||||
|
source = invite.ReferrerJellyfinID
|
||||||
|
}
|
||||||
|
|
||||||
|
app.storage.SetActivityKey(shortuuid.New(), Activity{
|
||||||
|
Type: ActivityCreation,
|
||||||
|
UserID: id,
|
||||||
|
SourceType: sourceType,
|
||||||
|
Source: source,
|
||||||
|
InviteCode: invite.Code,
|
||||||
|
Time: time.Now(),
|
||||||
|
})
|
||||||
|
|
||||||
emailStore := EmailAddress{
|
emailStore := EmailAddress{
|
||||||
Addr: req.Email,
|
Addr: req.Email,
|
||||||
Contact: (req.Email != ""),
|
Contact: (req.Email != ""),
|
||||||
|
42
storage.go
42
storage.go
@ -24,14 +24,15 @@ type emailStore map[string]EmailAddress
|
|||||||
type ActivityType int
|
type ActivityType int
|
||||||
|
|
||||||
const (
|
const (
|
||||||
ActivityCreation ActivityType = iota // FIXME
|
ActivityCreation ActivityType = iota
|
||||||
ActivityDeletion // FIXME
|
ActivityDeletion
|
||||||
ActivityDisabled // FIXME
|
ActivityDisabled
|
||||||
ActivityEnabled // FIXME
|
ActivityEnabled
|
||||||
ActivityLinked // FIXME
|
ActivityLinked
|
||||||
ActivityChangePassword // FIXME
|
ActivityChangePassword
|
||||||
ActivityResetPassword // FIXME
|
ActivityResetPassword
|
||||||
ActivityCreateInvite // FIXME
|
ActivityCreateInvite
|
||||||
|
ActivityDeleteInvite
|
||||||
)
|
)
|
||||||
|
|
||||||
type ActivitySource int
|
type ActivitySource int
|
||||||
@ -544,6 +545,31 @@ func (st *Storage) DeleteCustomContentKey(k string) {
|
|||||||
st.db.Delete(k, CustomContent{})
|
st.db.Delete(k, CustomContent{})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetActivityKey returns the value stored in the store's key.
|
||||||
|
func (st *Storage) GetActivityKey(k string) (Activity, bool) {
|
||||||
|
result := Activity{}
|
||||||
|
err := st.db.Get(k, &result)
|
||||||
|
ok := true
|
||||||
|
if err != nil {
|
||||||
|
// fmt.Printf("Failed to find custom content: %v\n", err)
|
||||||
|
ok = false
|
||||||
|
}
|
||||||
|
return result, ok
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetActivityKey stores value v in key k.
|
||||||
|
func (st *Storage) SetActivityKey(k string, v Activity) {
|
||||||
|
err := st.db.Upsert(k, v)
|
||||||
|
if err != nil {
|
||||||
|
// fmt.Printf("Failed to set custom content: %v\n", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteActivityKey deletes value at key k.
|
||||||
|
func (st *Storage) DeleteActivityKey(k string) {
|
||||||
|
st.db.Delete(k, Activity{})
|
||||||
|
}
|
||||||
|
|
||||||
type TelegramUser struct {
|
type TelegramUser struct {
|
||||||
JellyfinID string `badgerhold:"key"`
|
JellyfinID string `badgerhold:"key"`
|
||||||
ChatID int64 `badgerhold:"index"`
|
ChatID int64 `badgerhold:"index"`
|
||||||
|
Loading…
Reference in New Issue
Block a user