Oprávnění: Kontrola oprávnění relace pro snadné ladění

Automaticky přeloženo z Deepl

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.

HDI_GetPrivileges

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.

Avatar
• Product Owner • Marie-Sophie Landrieu-Yvert se připojila k programovému týmu 4D jako Product Owner v roce 2017. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich převod do funkčních specifikací. Její úlohou je také zajistit, aby implementovaná funkce odpovídala potřebám zákazníka. Marie-Sophie vystudovala inženýrskou školu ESIGELEC a svou kariéru zahájila jako inženýrka v IBM v roce 1995. Podílela se na různých projektech (projekty údržby nebo výstavby) a pracovala jako vývojářka Cobol. Poté pracovala jako UML designer a Java developer. V poslední době byly jejími hlavními rolí analyzovat a psát funkčních požadavky a koordinovat obchodní a vývojové týmy.