add logging and a lot of loaders.

This commit is contained in:
2020-05-30 15:28:40 +02:00
parent a4c019e67b
commit bd024a01a4
24 changed files with 1078 additions and 95 deletions
+17 -5
View File
@@ -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