fix: use ActivityPub actor ID for shared trails/lists search token filtering (#1014)
* fix: use ActivityPub actor ID for shared trails/lists search token filtering * fix deprecated meili token storage --------- Co-authored-by: Flomp <Flomp@users.noreply.github.com> Co-authored-by: Christian Beutel <>
This commit is contained in:
@@ -12,36 +12,16 @@ import (
|
|||||||
|
|
||||||
func CreateUserHandler(client meilisearch.ServiceManager) func(e *core.RecordEvent) error {
|
func CreateUserHandler(client meilisearch.ServiceManager) func(e *core.RecordEvent) error {
|
||||||
return func(e *core.RecordEvent) error {
|
return func(e *core.RecordEvent) error {
|
||||||
userId := e.Record.Id
|
|
||||||
|
|
||||||
err := createDefaultUserSettings(e.App, e.Record.Id)
|
err := createDefaultUserSettings(e.App, e.Record.Id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
actor, err := util.ActorFromUser(e.App, e.Record)
|
_, err = util.ActorFromUser(e.App, e.Record)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
searchRules := map[string]interface{}{
|
|
||||||
"lists": map[string]string{
|
|
||||||
"filter": "public = true OR author = " + actor.Id + " OR shares = " + userId,
|
|
||||||
},
|
|
||||||
"trails": map[string]string{
|
|
||||||
"filter": "public = true OR author = " + actor.Id + " OR shares = " + userId,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
token, err := util.GenerateMeilisearchToken(searchRules, client)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
e.Record.Set("token", token)
|
|
||||||
if err := e.App.Save(e.Record); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return e.Next()
|
return e.Next()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ func SearchToken(client meilisearch.ServiceManager) func(e *core.RequestEvent) e
|
|||||||
}
|
}
|
||||||
|
|
||||||
if e.Auth != nil {
|
if e.Auth != nil {
|
||||||
userId := e.Auth.Id
|
|
||||||
userActor, err := e.App.FindFirstRecordByData("activitypub_actors", "user", e.Auth.Id)
|
userActor, err := e.App.FindFirstRecordByData("activitypub_actors", "user", e.Auth.Id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -24,10 +23,10 @@ func SearchToken(client meilisearch.ServiceManager) func(e *core.RequestEvent) e
|
|||||||
|
|
||||||
searchRules = map[string]any{
|
searchRules = map[string]any{
|
||||||
"lists": map[string]string{
|
"lists": map[string]string{
|
||||||
"filter": "public = true OR author = " + userActor.Id + " OR shares = " + userId,
|
"filter": "public = true OR author = " + userActor.Id + " OR shares = " + userActor.Id,
|
||||||
},
|
},
|
||||||
"trails": map[string]string{
|
"trails": map[string]string{
|
||||||
"filter": "public = true OR author = " + userActor.Id + " OR shares = " + userId,
|
"filter": "public = true OR author = " + userActor.Id + " OR shares = " + userActor.Id,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user