go-auth0/auth0

View on GitHub
management/user.go

Summary

Maintainability
C
7 hrs
Test Coverage
B
88%

UserManager has 22 methods (exceeds 20 allowed). Consider refactoring.
Open

type UserManager struct {
    *Management
}
Severity: Minor
Found in management/user.go - About 2 hrs to fix

    Method UserManager.Link has 6 return statements (exceeds 4 allowed).
    Open

    func (m *UserManager) Link(id string, il *UserIdentityLink, opts ...RequestOption) (uIDs []UserIdentity, err error) {
        req, err := m.NewRequest("POST", m.URI("users", id, "identities"), il, opts...)
        if err != nil {
            return uIDs, err
        }
    Severity: Major
    Found in management/user.go - About 40 mins to fix

      Similar blocks of code found in 3 locations. Consider refactoring.
      Open

      func (m *UserManager) RemoveRoles(id string, roles []*Role, opts ...RequestOption) error {
          r := make(map[string][]*string)
          r["roles"] = make([]*string, len(roles))
          for i, role := range roles {
              r["roles"][i] = role.ID
      Severity: Major
      Found in management/user.go and 2 other locations - About 1 hr to fix
      management/role.go on lines 90..97
      management/user.go on lines 385..392

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 146.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      Similar blocks of code found in 3 locations. Consider refactoring.
      Open

      func (m *UserManager) AssignRoles(id string, roles []*Role, opts ...RequestOption) error {
          r := make(map[string][]*string)
          r["roles"] = make([]*string, len(roles))
          for i, role := range roles {
              r["roles"][i] = role.ID
      Severity: Major
      Found in management/user.go and 2 other locations - About 1 hr to fix
      management/role.go on lines 90..97
      management/user.go on lines 397..404

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 146.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      Similar blocks of code found in 2 locations. Consider refactoring.
      Open

      func (u *User) MarshalJSON() ([]byte, error) {
          type user User
          type userAlias struct {
              *user
              RawEmailVerified interface{} `json:"email_verified,omitempty"`
      Severity: Minor
      Found in management/user.go and 1 other location - About 55 mins to fix
      management/user.go on lines 220..233

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 127.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      Similar blocks of code found in 2 locations. Consider refactoring.
      Open

      func (i *UserIdentity) MarshalJSON() ([]byte, error) {
          type userIdentity UserIdentity
          type userIdentityAlias struct {
              *userIdentity
              RawUserID interface{} `json:"user_id,omitempty"`
      Severity: Minor
      Found in management/user.go and 1 other location - About 55 mins to fix
      management/user.go on lines 145..158

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 127.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      Similar blocks of code found in 4 locations. Consider refactoring.
      Wontfix

      func (m *UserManager) AssignPermissions(id string, permissions []*Permission, opts ...RequestOption) error {
          p := make(map[string][]*Permission)
          p["permissions"] = permissions
          return m.Request("POST", m.URI("users", id, "permissions"), &p, opts...)
      }
      Severity: Major
      Found in management/user.go and 3 other locations - About 35 mins to fix
      management/role.go on lines 110..114
      management/role.go on lines 127..131
      management/user.go on lines 426..430

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 106.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      Similar blocks of code found in 4 locations. Consider refactoring.
      Wontfix

      func (m *UserManager) RemovePermissions(id string, permissions []*Permission, opts ...RequestOption) error {
          p := make(map[string][]*Permission)
          p["permissions"] = permissions
          return m.Request("DELETE", m.URI("users", id, "permissions"), &p, opts...)
      }
      Severity: Major
      Found in management/user.go and 3 other locations - About 35 mins to fix
      management/role.go on lines 110..114
      management/role.go on lines 127..131
      management/user.go on lines 417..421

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 106.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      exported type UserBlock should have comment or be unexported
      Open

      type UserBlock struct {
      Severity: Minor
      Found in management/user.go by golint

      comment on exported method UserManager.Organizations should be of the form "Organizations ..."
      Open

      // List user's organizations
      Severity: Minor
      Found in management/user.go by golint

      exported method UserIdentity.MarshalJSON should have comment or be unexported
      Open

      func (i *UserIdentity) MarshalJSON() ([]byte, error) {
      Severity: Minor
      Found in management/user.go by golint

      comment on exported method UserManager.UnblockByIdentifier should be of the form "UnblockByIdentifier ..."
      Open

      // Unblock a user that was blocked due to an excessive amount of incorrectly
      Severity: Minor
      Found in management/user.go by golint

      comment on exported method UserManager.BlocksByIdentifier should be of the form "BlocksByIdentifier ..."
      Open

      // Blocks retrieves a list of blocked IP addresses of a particular user using
      Severity: Minor
      Found in management/user.go by golint

      exported method User.MarshalJSON should have comment or be unexported
      Open

      func (u *User) MarshalJSON() ([]byte, error) {
      Severity: Minor
      Found in management/user.go by golint

      exported type UserIdentity should have comment or be unexported
      Open

      type UserIdentity struct {
      Severity: Minor
      Found in management/user.go by golint

      exported type UserRecoveryCode should have comment or be unexported
      Open

      type UserRecoveryCode struct {
      Severity: Minor
      Found in management/user.go by golint

      There are no issues that match your filters.

      Category
      Status