I ve created a custom function that I want to use in policy file (CSV) . My function needs 2 parameters but the policy file is not parsed in Casbin as a real CSV file ...it justs splits the row by the comma.Is there any standard way to put a custom function with more than 1 parameter in the policy file? Thanks,
I am trying to use ABAC in Casbin by getting User Atribbutes and Object Attributes and writing some custom functions to decide access allowed/deny but the policy file supports only some basic stuff like "p, r.sub.Age <60, /data2, write" . Does that mean I could end up without using only the Model .conf files ? so no central storage for the Model .conf files? Thanks,
If i have in Model .conf like:
matchers m = eval(p.sub_rule) && r.obj == p.obj && r.act == p.act
then in policy file the following stuff works: p, my_custom_func(r.sub.Age), /data1, read
BUT not the following kind of stuff: p, my_custom_func(r.sub.Age,r.sub.MaxAge), /data1, read
....because the policy file is splitted by the ',' (COMMA) and my_custom_func takes 2 parameters ...so it will be 1 more extra comma in policy row
Casbin: " panic: invalid policy size: ...."
Oh! I finally got what you mean. Actually, we never expect the user to use eval() like this (my_custom_func(r.sub.Age)) :)
Maybe we need to improve the CSV parser to NOT split the "," inside a function call. Can you raise a GitHub issue here: https://github.com/casbin/casbin ? So we can find someone to fix it.