portainer/portainer

View on GitHub
api/internal/authorization/authorizations.go

Summary

Maintainability
D
1 day
Test Coverage

Function DefaultEndpointAuthorizationsForEndpointAdministratorRole has 132 lines of code (exceeds 50 allowed). Consider refactoring.
Open

func DefaultEndpointAuthorizationsForEndpointAdministratorRole() portainer.Authorizations {
    return map[portainer.Authorization]bool{
        portainer.OperationDockerContainerArchiveInfo:         true,
        portainer.OperationDockerContainerList:                true,
        portainer.OperationDockerContainerExport:              true,
Severity: Major
Found in api/internal/authorization/authorizations.go - About 4 hrs to fix

    Function DefaultEndpointAuthorizationsForStandardUserRole has 127 lines of code (exceeds 50 allowed). Consider refactoring.
    Open

    func DefaultEndpointAuthorizationsForStandardUserRole(volumeBrowsingAuthorizations bool) portainer.Authorizations {
        authorizations := map[portainer.Authorization]bool{
            portainer.OperationDockerContainerArchiveInfo:         true,
            portainer.OperationDockerContainerList:                true,
            portainer.OperationDockerContainerExport:              true,
    Severity: Major
    Found in api/internal/authorization/authorizations.go - About 4 hrs to fix

      File authorizations.go has 560 lines of code (exceeds 500 allowed). Consider refactoring.
      Open

      package authorization
      
      import (
          portainer "github.com/portainer/portainer/api"
          "github.com/portainer/portainer/api/dataservices"
      Severity: Minor
      Found in api/internal/authorization/authorizations.go - About 3 hrs to fix

        Function DefaultEndpointAuthorizationsForHelpDeskRole has 52 lines of code (exceeds 50 allowed). Consider refactoring.
        Open

        func DefaultEndpointAuthorizationsForHelpDeskRole(volumeBrowsingAuthorizations bool) portainer.Authorizations {
            authorizations := map[portainer.Authorization]bool{
                portainer.OperationDockerContainerArchiveInfo: true,
                portainer.OperationDockerContainerList:        true,
                portainer.OperationDockerContainerChanges:     true,
        Severity: Minor
        Found in api/internal/authorization/authorizations.go - About 1 hr to fix

          Function DefaultEndpointAuthorizationsForReadOnlyUserRole has 51 lines of code (exceeds 50 allowed). Consider refactoring.
          Open

          func DefaultEndpointAuthorizationsForReadOnlyUserRole(volumeBrowsingAuthorizations bool) portainer.Authorizations {
              authorizations := map[portainer.Authorization]bool{
                  portainer.OperationDockerContainerArchiveInfo: true,
                  portainer.OperationDockerContainerList:        true,
                  portainer.OperationDockerContainerChanges:     true,
          Severity: Minor
          Found in api/internal/authorization/authorizations.go - About 1 hr to fix

            Method Service.getAuthorizations has 6 return statements (exceeds 4 allowed).
            Open

            func (service *Service) getAuthorizations(tx dataservices.DataStoreTx, user *portainer.User) (portainer.EndpointAuthorizations, error) {
                endpointAuthorizations := portainer.EndpointAuthorizations{}
                if user.Role == portainer.AdministratorRole {
                    return endpointAuthorizations, nil
                }
            Severity: Major
            Found in api/internal/authorization/authorizations.go - About 40 mins to fix

              Function getUserEndpointAuthorizations has 5 arguments (exceeds 4 allowed). Consider refactoring.
              Open

              func getUserEndpointAuthorizations(user *portainer.User, endpoints []portainer.Endpoint, endpointGroups []portainer.EndpointGroup, roles []portainer.Role, userMemberships []portainer.TeamMembership) portainer.EndpointAuthorizations {
              Severity: Minor
              Found in api/internal/authorization/authorizations.go - About 35 mins to fix

                There are no issues that match your filters.

                Category
                Status