tao-test/app/tao/README.md

147 lines
4.0 KiB
Markdown
Raw Normal View History

2022-08-29 20:14:13 +02:00
tao-core
========
[Task Queue Doc](models/classes/taskQueue/README.md)
[Middlewares Doc](models/classes/Middleware/README.md)
# Feature flag
You can now define feature flag in environment global variables.
## How to use it
You can use feature flag to easily switch off/on parts of TAO functionality.
### Feature flag name
It is import tht we will use `FEATURE_FLAG` prefix for our feature flags to recognise them and they prupose
in environment variable list.
### AbstractFeatureFlagFormPropertyMapper
To hide/show form fields you can extend `AbstractFeatureFlagFormPropertyMapper` with your configurable service that has
`OPTION_FEATURE_FLAG_FORM_FIELDS` mapped to list of fields that you want to hide/show.
```php
<?php
use oat\taoLti\models\classes\LtiProvider\FeatureFlagFormPropertyMapper;
return new FeatureFlagFormPropertyMapper(
[
FeatureFlagFormPropertyMapper::OPTION_FEATURE_FLAG_FORM_FIELDS => [
'formField_01' => [
'FEATURE_FLAG_NAME'
]
]
]
);
```
This configuration will display `formField_01` when `FEATURE_FLAG_NAME` is enabled
### SectionVisibilityFilterInterface
`tao/SectionVisibilityFilter` is responsible for listing sections that can be disabled from user. In order to add more
sections that have to be disabled/enabled based on feature flag.
```php
<?php
return new oat\tao\model\menu\SectionVisibilityFilter(array(
'featureFlagSections' => [
'sectionName' => [
'FETURE_FLAG_01'
]
]
));
```
This configuration will display `sectionName` when `FETURE_FLAG_01` is enabled.
## Advanced Search feature flag
Advanced search feature will be enabled by default (but it requires elastic search library).
You can define `FEATURE_FLAG_ADVANCED_SEARCH_DISABLED=true` or `FEATURE_FLAG_ADVANCED_SEARCH_DISABLED=1` feature flag
in global environment variables to disable Advanced Search feature.
# Webhooks
## Description
Webhooks allow you to send a request to remote server based on triggered event
## How to use it
### Register event webhook.
use command `\oat\tao\scripts\tools\RegisterEventWebhook` to register events that are implementing `\oat\tao\model\webhooks\configEntity\WebhookInterface` interface.
i.e:
```
$ php index.php 'oat\tao\scripts\tools\RegisterEventWebhook'
\ -u "https://example.com"
\ -m "POST"
\ -e "<<Class FQN>>"
```
# Check ACL Permissions
In order to check ACL permissions, you can use the `PermissionChecker`:
```php
$permissionChecker = $this->getServiceLocator()->get(oat\tao\model\accessControl\PermissionChecker::class);
$permissionChecker->hasWriteAccess('resourceId');
$permissionChecker->hasReadAccess('resourceId');
$permissionChecker->hasGrantAccess('resourceId');
```
**Important**: It takes into consideration the current user in the session, if no user is provided.
# Roles Access (rules and action permissions)
## Description
Script allow you to apply (add)/revoke (remove) list of rules and/or permissions to a specific roles and actions.
## How to use it
Execute the following command to apply (add) new rules/permissions:
```
$ php index.php 'oat\tao\scripts\tools\accessControl\SetRolesAccess' \
--config [config.json|json_string]
```
If you want to revoke (remove) them, add `--revoke` flag:
```
$ php index.php 'oat\tao\scripts\tools\accessControl\SetRolesAccess' \
--revoke \
--config [config.json|json_string]
```
### Config example
```json
{
"rules": {
"role": [
{
"ext": "extensionIdentifier",
"mod": "actionControllerName",
"act": "actionMethodName"
}
]
},
"permissions": {
"controller": {
"action": {
"rule1": "READ",
"rule2": "WRITE"
}
}
}
}
```
## Lists Dependency feature flag
Lists Dependency feature will be disabled by default.
You can define `FEATURE_FLAG_LISTS_DEPENDENCY_ENABLED=1` feature flag in global environment variables to enable
Lists Dependency feature.