Dnes můžete využít výkonnou funkci filtrování přístupu k datům, která je nezbytná pro zabránění škodlivému přístupu k vaší aplikaci.
Tato funkce využívá oprávnění, která povolují určité akce s vašimi daty. Tato oprávnění jsou uživatelům přidělována prostřednictvím rolí a ukládána do relace při ověřování.
Ve verzi 4D 20R6 jsme tuto funkci rozšířili o možnost kontrolovat oprávnění v relaci, což je velmi užitečné při ladění.
Čtěte dále a dozvíte se více.
a Nová funkce getPrivileges() na objektu Session
Podívejme se na příklad.
V souboru roles.json máme privilegium medium obsahující jednoduché privilegium. Role Medium obsahuje privilegium medium.
{
"privileges": [
{
"privilege": "simple",
"includes": []
},
{
"privilege": "medium",
"includes": [
"simple"
]
}
],
"roles": [
{
"role": "Medium",
"privileges": [
"medium"
]
}
],
"permissions": {
"allowed": [] // Set up the allowed actions here
}
}
Ve třídě Datastore je funkce authentify(), která přiřadí všechna privilegia dané role na Session.
exposed Function authentify($role : Text) : Text
Session.clearPrivileges()
Session.setPrivileges({roles: $role})
return "Authentication done with "+$role
Ve třídě Datastore je také implementována funkce getPrivileges(). Ta vrací privilegia v Session.
exposed Function getPrivileges() : Collection
return Session.getPrivileges()
Pokud je funkce authentify() volána s rolí Medium, vrátí se funkce getPrivileges():
[
"simple",
"medium"
]
Nové /$info/privileges RESt API
K dispozici je také nové rozhraní REST API pro získání oprávnění v relaci. Volání /$info/privileges ve výše uvedeném příkladu také vrací:
{
"privileges": [
{
"privilege": "simple"
},
{
"privilege": "medium"
}
]
}
To usnadňuje ladění. Pro více informací se podívejte do dokumentace.