project_role.go 539 B

123456789101112131415161718192021222324252627282930313233
  1. package models
  2. import (
  3. "github.com/porter-dev/porter/api/types"
  4. "gorm.io/gorm"
  5. )
  6. type ProjectRole struct {
  7. gorm.Model
  8. UniqueID string `gorm:"unique"`
  9. ProjectID uint
  10. PolicyUID string
  11. Name string
  12. Users []User `gorm:"many2many:user_roles"`
  13. }
  14. func (role *ProjectRole) ToProjectRoleType(policy *types.PolicyDocument) *types.ProjectRole {
  15. res := &types.ProjectRole{
  16. ID: role.UniqueID,
  17. Name: role.Name,
  18. Policy: policy,
  19. }
  20. for _, user := range role.Users {
  21. res.Users = append(res.Users, user.ID)
  22. }
  23. return res
  24. }