Skip to content

Commit

Permalink
best practices: attribute Requires
Browse files Browse the repository at this point in the history
  • Loading branch information
dg committed Apr 19, 2024
1 parent 6b14447 commit 6485283
Show file tree
Hide file tree
Showing 48 changed files with 2,864 additions and 432 deletions.
28 changes: 1 addition & 27 deletions application/bg/presenters.texy
Expand Up @@ -452,40 +452,14 @@ $this->sendResponse(new Responses\CallbackResponse($callback));

В `#[Requires]` предоставя разширени опции за ограничаване на достъпа до презентаторите и техните методи. Той може да се използва за определяне на HTTP методи, изискване на AJAX заявки, ограничаване на достъпа до същия произход и ограничаване на достъпа само до препращане. Атрибутът може да се прилага към класове на презентатори, както и към отделни методи, като например `action<Action>()`, `render<View>()`, `handle<Signal>()`, и `createComponent<Name>()`.

Ето един пример за използването му за ограничаване на достъпа само до метода HTTP `POST`:

```php
use Nette\Application\Attributes\Requires;

#[Requires(methods: 'POST')]
class MyPresenter extends Nette\Application\UI\Presenter
{
}
```

Можете да зададете тези ограничения:
- на HTTP методите: `#[Requires(methods: ['GET', 'POST'])]`
- изискващи AJAX заявка: `#[Requires(ajax: true)]`
- достъп само от един и същ произход: `#[Requires(sameOrigin: true)]`
- достъп само чрез препращане: `#[Requires(forward: true)]`
- ограничения за конкретни действия: `#[Requires(actions: 'default')]`

Условията могат да се комбинират чрез изброяване на няколко атрибута или чрез обединяването им в един:

```php
#[Requires(methods: 'POST', ajax: true)]
public function actionDelete(int $id)
{
}

// or

#[Requires(methods: 'POST')]
#[Requires(ajax: true)]
public function actionDelete(int $id)
{
}
```
За подробности вижте [Как да използвате Requires атрибут |добри практики:атрибут- изисква].


Проверка на метода HTTP .[#toc-http-method-check]
Expand Down
28 changes: 1 addition & 27 deletions application/cs/presenters.texy
Expand Up @@ -452,40 +452,14 @@ Omezení přístupu pomocí `#[Requires]` .{data-version:3.2.2}

Atribut `#[Requires]` poskytuje pokročilé možnosti pro omezení přístupu k presenterům a jejich metodám. Lze jej použít pro specifikaci HTTP metod, vyžadování AJAXového požadavku, omezení na stejný původ (same origin), a přístup pouze přes forwardování. Atribut lze aplikovat jak na třídy presenterů, tak na jednotlivé metody `action<Action>()`, `render<View>()`, `handle<Signal>()` a `createComponent<Name>()`.

Příklad použití pro omezení přístupu pouze HTTP metodou `POST`:

```php
use Nette\Application\Attributes\Requires;

#[Requires(methods: 'POST')]
class MyPresenter extends Nette\Application\UI\Presenter
{
}
```

Můžete určit tyto omezení:
- na HTTP metody: `#[Requires(methods: ['GET', 'POST'])]`
- vyžadování AJAXového požadavku: `#[Requires(ajax: true)]`
- přístup pouze ze stejného původu: `#[Requires(sameOrigin: true)]`
- přístup pouze přes forward: `#[Requires(forward: true)]`
- omezení na konkrétní akce: `#[Requires(actions: 'default')]`

Kombinovat podmínky lze uvedením více atributů nebo spojením do jednoho:

```php
#[Requires(methods: 'POST', ajax: true)]
public function actionDelete(int $id)
{
}

// nebo

#[Requires(methods: 'POST')]
#[Requires(ajax: true)]
public function actionDelete(int $id)
{
}
```
Podrobnosti najdete v návodu [Jak používat atribut Requires |best-practices:attribute-requires].


Kontrola HTTP metody
Expand Down
28 changes: 1 addition & 27 deletions application/de/presenters.texy
Expand Up @@ -452,40 +452,14 @@ Zugangsbeschränkung mit `#[Requires]` .[#toc-access-restriction-using-requires]

Das Attribut `#[Requires]` Attribut bietet erweiterte Optionen zur Einschränkung des Zugriffs auf Präsentatoren und ihre Methoden. Es kann verwendet werden, um HTTP-Methoden zu spezifizieren, AJAX-Anfragen zu verlangen, den Zugriff auf denselben Ursprung zu beschränken und den Zugriff nur auf Weiterleitungen zu beschränken. Das Attribut kann sowohl auf Presenter-Klassen als auch auf einzelne Methoden angewendet werden, z. B. `action<Action>()`, `render<View>()`, `handle<Signal>()`, und `createComponent<Name>()`.

Hier ein Beispiel für die Beschränkung des Zugriffs nur auf die Methode HTTP `POST`:

```php
use Nette\Application\Attributes\Requires;

#[Requires(methods: 'POST')]
class MyPresenter extends Nette\Application\UI\Presenter
{
}
```

Sie können diese Einschränkungen angeben:
- auf HTTP-Methoden: `#[Requires(methods: ['GET', 'POST'])]`
- die eine AJAX-Anfrage erfordern: `#[Requires(ajax: true)]`
- Zugriff nur vom selben Ursprung: `#[Requires(sameOrigin: true)]`
- Zugriff nur über Weiterleitung: `#[Requires(forward: true)]`
- Einschränkungen für bestimmte Aktionen: `#[Requires(actions: 'default')]`

Bedingungen können kombiniert werden, indem mehrere Attribute aufgelistet oder zu einem einzigen zusammengefasst werden:

```php
#[Requires(methods: 'POST', ajax: true)]
public function actionDelete(int $id)
{
}

// or

#[Requires(methods: 'POST')]
#[Requires(ajax: true)]
public function actionDelete(int $id)
{
}
```
Für Einzelheiten siehe [Verwendung des Requires Attributs |best-practices:attribute-requires].


HTTP-Methodenprüfung .[#toc-http-method-check]
Expand Down
28 changes: 1 addition & 27 deletions application/el/presenters.texy
Expand Up @@ -452,40 +452,14 @@ $this->sendResponse(new Responses\CallbackResponse($callback));

Το `#[Requires]` παρέχει προηγμένες επιλογές για τον περιορισμό της πρόσβασης στους παρουσιαστές και τις μεθόδους τους. Μπορεί να χρησιμοποιηθεί για τον προσδιορισμό μεθόδων HTTP, την απαίτηση αιτήσεων AJAX, τον περιορισμό της πρόσβασης στην ίδια προέλευση και τον περιορισμό της πρόσβασης μόνο στην προώθηση. Το χαρακτηριστικό μπορεί να εφαρμοστεί σε κλάσεις παρουσιαστών καθώς και σε μεμονωμένες μεθόδους όπως οι `action<Action>()`, `render<View>()`, `handle<Signal>()`, και `createComponent<Name>()`.

Ακολουθεί ένα παράδειγμα χρήσης της για να περιορίσετε την πρόσβαση μόνο στη μέθοδο HTTP `POST`:

```php
use Nette\Application\Attributes\Requires;

#[Requires(methods: 'POST')]
class MyPresenter extends Nette\Application\UI\Presenter
{
}
```

Μπορείτε να καθορίσετε αυτούς τους περιορισμούς:
- σε μεθόδους HTTP: `#[Requires(methods: ['GET', 'POST'])]`
- AJAX: `#[Requires(ajax: true)]`
- πρόσβαση μόνο από την ίδια προέλευση: `#[Requires(sameOrigin: true)]`
- πρόσβαση μόνο μέσω προώθησης: `#[Requires(forward: true)]`
- περιορισμοί σε συγκεκριμένες ενέργειες: `#[Requires(actions: 'default')]`

Οι συνθήκες μπορούν να συνδυαστούν με την απαρίθμηση πολλαπλών χαρακτηριστικών ή με τη συνένωσή τους σε ένα:

```php
#[Requires(methods: 'POST', ajax: true)]
public function actionDelete(int $id)
{
}

// or

#[Requires(methods: 'POST')]
#[Requires(ajax: true)]
public function actionDelete(int $id)
{
}
```
Για λεπτομέρειες, ανατρέξτε στην ενότητα [Πώς να χρησιμοποιήσετε το Requires attribute |best-practices:attribute-requires].


Έλεγχος μεθόδου HTTP .[#toc-http-method-check]
Expand Down
28 changes: 1 addition & 27 deletions application/en/presenters.texy
Expand Up @@ -452,40 +452,14 @@ Access Restriction Using `#[Requires]` .{data-version:3.2.2}

The `#[Requires]` attribute provides advanced options for restricting access to presenters and their methods. It can be used to specify HTTP methods, require AJAX requests, limit access to the same origin, and restrict access to forwarding only. The attribute can be applied to presenter classes as well as individual methods such as `action<Action>()`, `render<View>()`, `handle<Signal>()`, and `createComponent<Name>()`.

Here’s an example of using it to restrict access to only the HTTP `POST` method:

```php
use Nette\Application\Attributes\Requires;

#[Requires(methods: 'POST')]
class MyPresenter extends Nette\Application\UI\Presenter
{
}
```

You can specify these restrictions:
- on HTTP methods: `#[Requires(methods: ['GET', 'POST'])]`
- requiring an AJAX request: `#[Requires(ajax: true)]`
- access only from the same origin: `#[Requires(sameOrigin: true)]`
- access only via forwarding: `#[Requires(forward: true)]`
- restrictions on specific actions: `#[Requires(actions: 'default')]`

Conditions can be combined by listing multiple attributes or by joining them into one:

```php
#[Requires(methods: 'POST', ajax: true)]
public function actionDelete(int $id)
{
}

// or

#[Requires(methods: 'POST')]
#[Requires(ajax: true)]
public function actionDelete(int $id)
{
}
```
For details, see [How to use the Requires attribute |best-practices:attribute-requires].


HTTP Method Check
Expand Down
28 changes: 1 addition & 27 deletions application/es/presenters.texy
Expand Up @@ -452,40 +452,14 @@ Restricción de acceso mediante `#[Requires]` .[#toc-access-restriction-using-re

El atributo `#[Requires]` ofrece opciones avanzadas para restringir el acceso a los presentadores y sus métodos. Puede utilizarse para especificar métodos HTTP, requerir solicitudes AJAX, limitar el acceso al mismo origen y restringir el acceso sólo al reenvío. El atributo puede aplicarse a clases de presentadores, así como a métodos individuales como `action<Action>()`, `render<View>()`, `handle<Signal>()`y `createComponent<Name>()`.

He aquí un ejemplo de su uso para restringir el acceso únicamente al método HTTP `POST`:

```php
use Nette\Application\Attributes\Requires;

#[Requires(methods: 'POST')]
class MyPresenter extends Nette\Application\UI\Presenter
{
}
```

Puede especificar estas restricciones
- en los métodos HTTP: `#[Requires(methods: ['GET', 'POST'])]`
- que requieren una petición AJAX: `#[Requires(ajax: true)]`
- acceso sólo desde el mismo origen: `#[Requires(sameOrigin: true)]`
- acceso sólo mediante reenvío: `#[Requires(forward: true)]`
- restricciones sobre acciones específicas: `#[Requires(actions: 'default')]`

Las condiciones pueden combinarse enumerando varios atributos o uniéndolos en uno solo:

```php
#[Requires(methods: 'POST', ajax: true)]
public function actionDelete(int $id)
{
}

// or

#[Requires(methods: 'POST')]
#[Requires(ajax: true)]
public function actionDelete(int $id)
{
}
```
Para obtener más información, consulte [Cómo utilizar el atributo Requires atributo |best-practices:attribute-requires].


Comprobación del método HTTP .[#toc-http-method-check]
Expand Down
28 changes: 1 addition & 27 deletions application/fr/presenters.texy
Expand Up @@ -452,40 +452,14 @@ Restriction d'accès à l'aide de `#[Requires]` .[#toc-access-restriction-using-

L'attribut `#[Requires]` fournit des options avancées pour restreindre l'accès aux présentateurs et à leurs méthodes. Il peut être utilisé pour spécifier des méthodes HTTP, exiger des requêtes AJAX, limiter l'accès à la même origine et restreindre l'accès à la transmission uniquement. L'attribut peut être appliqué aux classes de présentateurs ainsi qu'aux méthodes individuelles telles que `action<Action>()`, `render<View>()`, `handle<Signal>()`, et `createComponent<Name>()`.

Voici un exemple d'utilisation pour restreindre l'accès à la seule méthode HTTP `POST`:

```php
use Nette\Application\Attributes\Requires;

#[Requires(methods: 'POST')]
class MyPresenter extends Nette\Application\UI\Presenter
{
}
```

Vous pouvez spécifier ces restrictions :
- sur les méthodes HTTP : `#[Requires(methods: ['GET', 'POST'])]`
- nécessitant une requête AJAX : `#[Requires(ajax: true)]`
- accès uniquement à partir de la même origine : `#[Requires(sameOrigin: true)]`
- accès uniquement par le biais d'une redirection : `#[Requires(forward: true)]`
- restrictions sur des actions spécifiques : `#[Requires(actions: 'default')]`

Les conditions peuvent être combinées en énumérant plusieurs attributs ou en les réunissant en un seul :

```php
#[Requires(methods: 'POST', ajax: true)]
public function actionDelete(int $id)
{
}

// or

#[Requires(methods: 'POST')]
#[Requires(ajax: true)]
public function actionDelete(int $id)
{
}
```
Pour plus de détails, voir [Comment utiliser l'attribut Requires |best-practices:attribute-requires].


Vérification de la méthode HTTP .[#toc-http-method-check]
Expand Down
28 changes: 1 addition & 27 deletions application/hu/presenters.texy
Expand Up @@ -452,40 +452,14 @@ Hozzáférés korlátozása `#[Requires]` .[#toc-access-restriction-using-requir

A `#[Requires]` attribútum speciális lehetőségeket biztosít az előadókhoz és módszereikhez való hozzáférés korlátozására. Használható HTTP-módszerek megadására, AJAX-kérések megkövetelésére, az azonos eredetű hozzáférések korlátozására és a hozzáférésnek csak a továbbításra való korlátozására. Az attribútum alkalmazható a prezenter osztályokra, valamint az egyes metódusokra, mint például a `action<Action>()`, `render<View>()`, `handle<Signal>()`, és `createComponent<Name>()`.

Íme egy példa arra, hogy csak a HTTP `POST` módszerre korlátozzuk a hozzáférést:

```php
use Nette\Application\Attributes\Requires;

#[Requires(methods: 'POST')]
class MyPresenter extends Nette\Application\UI\Presenter
{
}
```

Ezeket a korlátozásokat megadhatja:
- a HTTP-módszerekre: `#[Requires(methods: ['GET', 'POST'])]`
- AJAX-kérést igényel: `#[Requires(ajax: true)]`
- hozzáférés csak ugyanabból az eredetből: `#[Requires(sameOrigin: true)]`
- hozzáférés csak továbbítással: `#[Requires(forward: true)]`
- korlátozások bizonyos műveletekre: `#[Requires(actions: 'default')]`

A feltételek kombinálhatók több attribútum felsorolásával vagy azok egyesítésével:

```php
#[Requires(methods: 'POST', ajax: true)]
public function actionDelete(int $id)
{
}

// or

#[Requires(methods: 'POST')]
#[Requires(ajax: true)]
public function actionDelete(int $id)
{
}
```
A részletekért lásd [Hogyan használjuk a Requires attribútum használata |best-practices:attribute-requires].


HTTP módszer ellenőrzése .[#toc-http-method-check]
Expand Down
28 changes: 1 addition & 27 deletions application/it/presenters.texy
Expand Up @@ -452,40 +452,14 @@ Limitazione dell'accesso tramite `#[Requires]` .[#toc-access-restriction-using-r

L'attributo `#[Requires]` fornisce opzioni avanzate per limitare l'accesso ai presentatori e ai loro metodi. Può essere usato per specificare metodi HTTP, richiedere richieste AJAX, limitare l'accesso alla stessa origine e limitare l'accesso al solo inoltro. L'attributo può essere applicato alle classi di presentatori e ai singoli metodi, come ad esempio `action<Action>()`, `render<View>()`, `handle<Signal>()`, e `createComponent<Name>()`.

Ecco un esempio di utilizzo per limitare l'accesso al solo metodo HTTP `POST`:

```php
use Nette\Application\Attributes\Requires;

#[Requires(methods: 'POST')]
class MyPresenter extends Nette\Application\UI\Presenter
{
}
```

È possibile specificare queste restrizioni:
- sui metodi HTTP: `#[Requires(methods: ['GET', 'POST'])]`
- che richiedono una richiesta AJAX: `#[Requires(ajax: true)]`
- accesso solo dalla stessa origine: `#[Requires(sameOrigin: true)]`
- accesso solo tramite inoltro: `#[Requires(forward: true)]`
- restrizioni su azioni specifiche: `#[Requires(actions: 'default')]`

Le condizioni possono essere combinate elencando più attributi o unendoli in uno solo:

```php
#[Requires(methods: 'POST', ajax: true)]
public function actionDelete(int $id)
{
}

// or

#[Requires(methods: 'POST')]
#[Requires(ajax: true)]
public function actionDelete(int $id)
{
}
```
Per i dettagli, vedere [Come usare l'attributo Requires |best-practices:attributo-requisiti].


Controllo del metodo HTTP .[#toc-http-method-check]
Expand Down

0 comments on commit 6485283

Please sign in to comment.