group

package
v0.10.0-alpha.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 5, 2017 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

Package group offers capabilities for grouping subjects together, making policy management easier.

This endpoint is **experimental**, use it at your own risk.

Index

Constants

View Source
const (
	GroupsResource = "rn:hydra:warden:groups"
	GroupResource  = "rn:hydra:warden:groups:%s"
	Scope          = "hydra.warden.groups"
)
View Source
const (
	GroupsHandlerPath = "/warden/groups"
)

Variables

This section is empty.

Functions

func TestHelperManagers added in v0.9.3

func TestHelperManagers(m Manager) func(t *testing.T)

Types

type Group

type Group struct {
	// ID is the groups id.
	ID string `json:"id"`

	// Members is who belongs to the group.
	Members []string `json:"members"`
}

Group represents a warden group

swagger:model group

type Handler

type Handler struct {
	Manager Manager
	H       herodot.Writer
	W       firewall.Firewall
}

func (*Handler) AddGroupMembers

func (h *Handler) AddGroupMembers(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

swagger:route POST /warden/groups/{id}/members warden addMembersToGroup

Add members to a group

The subject making the request needs to be assigned to a policy containing:

```
{
  "resources": ["rn:hydra:warden:groups:<id>"],
  "actions": ["members.add"],
  "effect": "allow"
}
```

   Consumes:
   - application/json

   Produces:
   - application/json

   Schemes: http, https

   Security:
     oauth2: hydra.groups

   Responses:
     204: emptyResponse
     401: genericError
     403: genericError
     500: genericError

func (*Handler) CreateGroup

func (h *Handler) CreateGroup(w http.ResponseWriter, r *http.Request, _ httprouter.Params)

swagger:route POST /warden/groups warden createGroup

Create a group

The subject making the request needs to be assigned to a policy containing:

```
{
  "resources": ["rn:hydra:warden:groups"],
  "actions": ["create"],
  "effect": "allow"
}
```

   Consumes:
   - application/json

   Produces:
   - application/json

   Schemes: http, https

   Security:
     oauth2: hydra.groups

   Responses:
     201: groupResponse
     401: genericError
     403: genericError
     500: genericError

func (*Handler) DeleteGroup

func (h *Handler) DeleteGroup(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

swagger:route DELETE /warden/groups/{id} warden deleteGroup

Delete a group by id

The subject making the request needs to be assigned to a policy containing:

```
{
  "resources": ["rn:hydra:warden:groups:<id>"],
  "actions": ["delete"],
  "effect": "allow"
}
```

   Consumes:
   - application/json

   Produces:
   - application/json

   Schemes: http, https

   Security:
     oauth2: hydra.groups

   Responses:
     204: emptyResponse
     401: genericError
     403: genericError
     500: genericError

func (*Handler) FindGroupNames

func (h *Handler) FindGroupNames(w http.ResponseWriter, r *http.Request, _ httprouter.Params)

swagger:route GET /warden/groups warden findGroupsByMember

Find groups by member

The subject making the request needs to be assigned to a policy containing:

```
{
  "resources": ["rn:hydra:warden:groups"],
  "actions": ["list"],
  "effect": "allow"
}
```

   Consumes:
   - application/json

   Produces:
   - application/json

   Schemes: http, https

   Security:
     oauth2: hydra.groups

   Responses:
     200: findGroupsByMemberResponse
     401: genericError
     403: genericError
     500: genericError

func (*Handler) GetGroup

func (h *Handler) GetGroup(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

swagger:route GET /warden/groups/{id} warden getGroup

Get a group by id

The subject making the request needs to be assigned to a policy containing:

```
{
  "resources": ["rn:hydra:warden:groups:<id>"],
  "actions": ["create"],
  "effect": "allow"
}
```

   Consumes:
   - application/json

   Produces:
   - application/json

   Schemes: http, https

   Security:
     oauth2: hydra.groups

   Responses:
     201: groupResponse
     401: genericError
     403: genericError
     500: genericError

func (*Handler) RemoveGroupMembers

func (h *Handler) RemoveGroupMembers(w http.ResponseWriter, r *http.Request, ps httprouter.Params)

swagger:route DELETE /warden/groups/{id}/members warden removeMembersFromGroup

Remove members from a group

The subject making the request needs to be assigned to a policy containing:

```
{
  "resources": ["rn:hydra:warden:groups:<id>"],
  "actions": ["members.remove"],
  "effect": "allow"
}
```

   Consumes:
   - application/json

   Produces:
   - application/json

   Schemes: http, https

   Security:
     oauth2: hydra.groups

   Responses:
     204: emptyResponse
     401: genericError
     403: genericError
     500: genericError

func (*Handler) SetRoutes

func (h *Handler) SetRoutes(r *httprouter.Router)

type Manager

type Manager interface {
	CreateGroup(*Group) error
	GetGroup(id string) (*Group, error)
	DeleteGroup(id string) error

	AddGroupMembers(group string, members []string) error
	RemoveGroupMembers(group string, members []string) error

	FindGroupsByMember(subject string) ([]Group, error)
}

type MemoryManager

type MemoryManager struct {
	Groups map[string]Group
	sync.RWMutex
}

func NewMemoryManager

func NewMemoryManager() *MemoryManager

func (*MemoryManager) AddGroupMembers

func (m *MemoryManager) AddGroupMembers(group string, subjects []string) error

func (*MemoryManager) CreateGroup

func (m *MemoryManager) CreateGroup(g *Group) error

func (*MemoryManager) DeleteGroup

func (m *MemoryManager) DeleteGroup(id string) error

func (*MemoryManager) FindGroupsByMember added in v0.9.14

func (m *MemoryManager) FindGroupsByMember(subject string) ([]Group, error)

func (*MemoryManager) GetGroup

func (m *MemoryManager) GetGroup(id string) (*Group, error)

func (*MemoryManager) RemoveGroupMembers

func (m *MemoryManager) RemoveGroupMembers(group string, subjects []string) error

type SQLManager

type SQLManager struct {
	DB *sqlx.DB
}

func (*SQLManager) AddGroupMembers

func (m *SQLManager) AddGroupMembers(group string, subjects []string) error

func (*SQLManager) CreateGroup

func (m *SQLManager) CreateGroup(g *Group) error

func (*SQLManager) CreateSchemas

func (m *SQLManager) CreateSchemas() (int, error)

func (*SQLManager) DeleteGroup

func (m *SQLManager) DeleteGroup(id string) error

func (*SQLManager) FindGroupsByMember added in v0.9.14

func (m *SQLManager) FindGroupsByMember(subject string) ([]Group, error)

func (*SQLManager) GetGroup

func (m *SQLManager) GetGroup(id string) (*Group, error)

func (*SQLManager) RemoveGroupMembers

func (m *SQLManager) RemoveGroupMembers(group string, subjects []string) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL