Nextcloud PHP API (stable18)

PublicShareController extends Controller

Base controller for public shares

It will verify if the user is properly authenticated to the share. If not a 404 is thrown by the PublicShareMiddleware.

Use this for example for a controller that is not to be called via a webbrowser directly. For example a PublicPreviewController. As this is not meant to be called by a user direclty.

To show an auth page extend the AuthPublicShareController

Tags
since
14.0.0

Table of Contents

$appName  : string
app name
$request  : IRequest
current request
$session  : ISession
$responders  : array
$token  : string
__construct()  : mixed
constructor of the controller
buildResponse()  : Response
Serializes and formats a response
getResponderByHTTPHeader()  : string
Parses an HTTP accept header and returns the supported responder type
getToken()  : string
Get the token for this request
isAuthenticated()  : bool
Check if a share is authenticated or not
isValidToken()  : bool
Is the provided token a valid token
setToken()  : mixed
Middleware set the token for the request
shareNotFound()  : mixed
Function called if the share is not found.
getPasswordHash()  : string
Get a hash of the password for this share
isPasswordProtected()  : bool
Is a share with this token password protected
registerResponder()  : mixed
Registers a formatter for a type

Properties

$appName

app name

protected string $appName
Tags
since
7.0.0

$responders

private array $responders
Tags
since
7.0.0

Methods

__construct()

constructor of the controller

public __construct(string $appName, IRequest $request, ISession $session) : mixed
Parameters
$appName : string

the name of the app

$request : IRequest

an instance of the request

$session : ISession
Tags
since
14.0.0
Return values
mixed —

buildResponse()

Serializes and formats a response

public buildResponse(mixed $response[, string $format = 'json' ]) : Response
Parameters
$response : mixed

the value that was returned from a controller and is not a Response instance

$format : string = 'json'

the format for which a formatter has been registered

Tags
throws
DomainException

if format does not match a registered formatter

since
7.0.0
Return values
Response —

getResponderByHTTPHeader()

Parses an HTTP accept header and returns the supported responder type

public getResponderByHTTPHeader(string $acceptHeader[, string $default = 'json' ]) : string
Parameters
$acceptHeader : string
$default : string = 'json'
Tags
since
7.0.0
since
9.1.0

Added default parameter

Return values
string —

the responder type

getToken()

Get the token for this request

public final getToken() : string
Tags
since
14.0.0
Return values
string —

isAuthenticated()

Check if a share is authenticated or not

public final isAuthenticated() : bool
Tags
since
14.0.0
Return values
bool —

isValidToken()

Is the provided token a valid token

public abstract isValidToken() : bool

This function is already called from the middleware directly after setting the token.

Tags
since
14.0.0
Return values
bool —

setToken()

Middleware set the token for the request

public final setToken(string $token) : mixed
Parameters
$token : string
Tags
since
14.0.0
Return values
mixed —

shareNotFound()

Function called if the share is not found.

public shareNotFound() : mixed

You can use this to do some logging for example

Tags
since
14.0.0
Return values
mixed —

getPasswordHash()

Get a hash of the password for this share

protected abstract getPasswordHash() : string

To ensure access is blocked when the password to a share is changed we store a hash of the password for this token.

Tags
since
14.0.0
Return values
string —

isPasswordProtected()

Is a share with this token password protected

protected abstract isPasswordProtected() : bool
Tags
since
14.0.0
Return values
bool —

registerResponder()

Registers a formatter for a type

protected registerResponder(string $format, Closure $responder) : mixed
Parameters
$format : string
$responder : Closure
Tags
since
7.0.0
Return values
mixed —

Search results