add logging and a lot of loaders.
This commit is contained in:
+17
-5
@@ -4,6 +4,7 @@ import (
|
||||
"context"
|
||||
"errors"
|
||||
"git.aiterp.net/stufflog/server/database/repositories"
|
||||
"git.aiterp.net/stufflog/server/graph/loaders"
|
||||
"git.aiterp.net/stufflog/server/internal/generate"
|
||||
"git.aiterp.net/stufflog/server/internal/slerrors"
|
||||
"git.aiterp.net/stufflog/server/models"
|
||||
@@ -112,13 +113,13 @@ func (auth *Auth) UserFromContext(ctx context.Context) *models.User {
|
||||
return user
|
||||
}
|
||||
|
||||
func (auth *Auth) ProjectPermission(ctx context.Context, project models.Project) (*models.ProjectPermission, error) {
|
||||
func (auth *Auth) ProjectPermission(ctx context.Context, projectID string) (*models.ProjectPermission, error) {
|
||||
user := auth.UserFromContext(ctx)
|
||||
if user == nil || !user.Active {
|
||||
return nil, slerrors.PermissionDenied
|
||||
}
|
||||
|
||||
permission, err := auth.projects.GetPermission(ctx, project, *user)
|
||||
permission, err := loaders.ProjectPermissionLoaderFromContext(ctx).Load(projectID)
|
||||
if err != nil {
|
||||
return nil, ErrInternalPermissionFailure
|
||||
}
|
||||
@@ -137,7 +138,7 @@ func (auth *Auth) IssuePermission(ctx context.Context, issue models.Issue) (*mod
|
||||
|
||||
isOwnedOrAssigned := issue.AssigneeID == user.ID || issue.OwnerID == user.ID
|
||||
|
||||
permission, err := auth.projects.GetIssuePermission(ctx, issue, *user)
|
||||
permission, err := loaders.ProjectPermissionLoaderFromContext(ctx).Load(issue.ProjectID)
|
||||
if err != nil {
|
||||
return nil, ErrInternalPermissionFailure
|
||||
}
|
||||
@@ -227,6 +228,17 @@ func (auth *Auth) EditUser(ctx context.Context, username string, setName *string
|
||||
return user, nil
|
||||
}
|
||||
|
||||
func (auth *Auth) FilterLogListCopy(ctx context.Context, logs []*models.Log) []*models.Log {
|
||||
logs2 := make([]*models.Log, 0, len(logs))
|
||||
for _, log := range logs {
|
||||
logs2 = append(logs2, log.Copy())
|
||||
}
|
||||
|
||||
auth.FilterLogList(ctx, &logs2)
|
||||
|
||||
return logs2
|
||||
}
|
||||
|
||||
func (auth *Auth) FilterLogList(ctx context.Context, logs *[]*models.Log) {
|
||||
user := auth.UserFromContext(ctx)
|
||||
if user == nil {
|
||||
@@ -270,7 +282,7 @@ func (auth *Auth) FilterLog(ctx context.Context, logs ...*models.Log) {
|
||||
continue
|
||||
}
|
||||
|
||||
issue, err := auth.issues.Find(ctx, item.IssueID)
|
||||
issue, err := loaders.IssueLoaderFromContext(ctx).Load(item.IssueID)
|
||||
if err != nil {
|
||||
deleteList = append(deleteList, i-len(deleteList))
|
||||
accessMap[item.IssueID] = true
|
||||
@@ -296,7 +308,7 @@ func (auth *Auth) FilterLog(ctx context.Context, logs ...*models.Log) {
|
||||
continue
|
||||
}
|
||||
|
||||
issue, err := auth.issues.Find(ctx, task.IssueID)
|
||||
issue, err := loaders.IssueLoaderFromContext(ctx).Load(task.IssueID)
|
||||
if err != nil {
|
||||
deleteList = append(deleteList, i-len(deleteList))
|
||||
accessMap[task.IssueID] = true
|
||||
|
||||
Reference in New Issue
Block a user