AuthModifier
public class AuthModifier<
A: AuthEndpoint,
U: CorvusModelAuthenticatable>:
RestModifier<A>, AuthEndpoint
A class that wraps a component which utilizes an .auth() modifier. That
allows Corvus to chain modifiers, as it gets treated as any other struct
conforming to AuthEndpoint. Requires an object U that represents the
user to authorize.
-
The
KeyPathto the user property of theQuerySubjectwhich is to be authenticated.Declaration
Swift
public typealias UserKeyPath = KeyPath< QuerySubject, QuerySubject.Parent<U> > -
The path to the property to authenticate for.
Declaration
Swift
public let userKeyPath: UserKeyPath -
Initializes the modifier with its underlying
QueryEndpointand itsauthpath, which is the keypath to the property to run authorization for.Declaration
Swift
public init(_ authEndpoint: A, user: UserKeyPath)Parameters
queryEndpointThe
QueryEndpointwhich the modifer is attached to.userA
KeyPathwhich leads to the property to authenticate for.operationTypeThe HTTP method of the wrapped component.
-
A method which checks if the user
Usupplied in theRequestis equal to the user belonging to the particularQuerySubject.Throws
AnAborterror if an item is not found.Declaration
Swift
override public func handler(_ req: Request) throws -> EventLoopFuture<Element>Parameters
reqAn incoming
Request.Return Value
An
EventLoopFuturecontaining an eagerloaded value as defined byElement. If authorization fails or a user is not found, HTTP.unauthorizedand.notFoundare thrown respectively.
AuthModifier Class Reference