add logging and a lot of loaders.
This commit is contained in:
@@ -107,6 +107,7 @@ func (r *projectRepository) GetPermission(ctx context.Context, project models.Pr
|
||||
return &models.ProjectPermission{
|
||||
ProjectID: project.ID,
|
||||
UserID: user.ID,
|
||||
Level: models.ProjectPermissionLevelNoAccess,
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -116,6 +117,40 @@ func (r *projectRepository) GetPermission(ctx context.Context, project models.Pr
|
||||
return &permission, nil
|
||||
}
|
||||
|
||||
func (r *projectRepository) GetUserPermissions(ctx context.Context, user models.User, projectIDs []string) ([]*models.ProjectPermission, error) {
|
||||
query, args, err := sq.Select("*").From("project_permission").Where(sq.Eq{
|
||||
"user_id": user.ID,
|
||||
"project_id": projectIDs,
|
||||
}).ToSql()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
permissions := make([]*models.ProjectPermission, 0, 8)
|
||||
err = r.db.GetContext(ctx, &permissions, query, args...)
|
||||
if err != nil && err != sql.ErrNoRows {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
filled := make(map[string]bool, len(permissions))
|
||||
for _, permission := range permissions {
|
||||
filled[permission.ProjectID] = true
|
||||
}
|
||||
for _, projectID := range projectIDs {
|
||||
if filled[projectID] {
|
||||
continue
|
||||
}
|
||||
|
||||
permissions = append(permissions, &models.ProjectPermission{
|
||||
ProjectID: projectID,
|
||||
UserID: user.ID,
|
||||
Level: models.ProjectPermissionLevelNoAccess,
|
||||
})
|
||||
}
|
||||
|
||||
return permissions, nil
|
||||
}
|
||||
|
||||
func (r *projectRepository) GetIssuePermission(ctx context.Context, issue models.Issue, user models.User) (*models.ProjectPermission, error) {
|
||||
return r.GetPermission(ctx, models.Project{ID: issue.ProjectID}, user)
|
||||
}
|
||||
@@ -140,10 +175,10 @@ func (r *projectRepository) Delete(ctx context.Context, project models.Project)
|
||||
return err
|
||||
}
|
||||
|
||||
//_, err = r.db.ExecContext(ctx, "DELETE FROM project_status WHERE project_id=?", project.ID)
|
||||
//if err != nil {
|
||||
// return err
|
||||
//}
|
||||
_, err = r.db.ExecContext(ctx, "DELETE FROM project_status WHERE project_id=?", project.ID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user