MCPcopy Create free account
hub / github.com/TheThingsNetwork/lorawan-stack / RequireClient

Function RequireClient

pkg/auth/rights/require.go:146–160  ·  view source on GitHub ↗

RequireClient checks that context contains the required rights for the given client ID.

(ctx context.Context, id *ttnpb.ClientIdentifiers, required ...ttnpb.Right)

Source from the content-addressed store, hash-verified

144// RequireClient checks that context contains the required rights for the
145// given client ID.
146func RequireClient(ctx context.Context, id *ttnpb.ClientIdentifiers, required ...ttnpb.Right) (err error) {
147 uid := unique.ID(ctx, id)
148 rights, err := ListClient(ctx, id)
149 if err != nil {
150 return err
151 }
152 if len(rights.GetRights()) == 0 {
153 return ErrNoClientRights.WithAttributes("uid", uid)
154 }
155 missing := ttnpb.RightsFrom(required...).Sub(rights).GetRights()
156 if len(missing) > 0 {
157 return ErrInsufficientClientRights.WithAttributes("uid", uid, "missing", rightsNames(missing...))
158 }
159 return nil
160}
161
162// RequireGateway checks that context contains the required rights for the
163// given gateway ID.

Callers 12

requireRightsFunction · 0.92
TestRequireFunction · 0.92
RequestValidationMethod · 0.92
getClientMethod · 0.92
updateClientMethod · 0.92
deleteClientMethod · 0.92
restoreClientMethod · 0.92
purgeClientMethod · 0.92
getClientCollaboratorMethod · 0.92
setClientCollaboratorMethod · 0.92

Calls 7

IDFunction · 0.92
RightsFromFunction · 0.92
ListClientFunction · 0.85
rightsNamesFunction · 0.85
SubMethod · 0.80
GetRightsMethod · 0.45
WithAttributesMethod · 0.45

Tested by 2

requireRightsFunction · 0.74
TestRequireFunction · 0.74