| [requests] |
| user_access_data = usr, data |
| user_access_function = usr, function |
| user_access_task = usr, task |
| |
| task_access_function = task, function |
| task_access_data = task, data |
| |
| [terms] |
| data_owner = data, usr |
| function_owner = function, usr |
| is_public_function = function |
| task_participant = task, usr |
| |
| [matchers] |
| user_access_data = data_owner(user_access_data.data, user_access_data.usr) |
| |
| user_access_function = \ |
| is_public_function(user_access_function.function) or \ |
| function_owner(user_access_function.function, user_access_function.usr) |
| |
| user_access_task = task_participant(user_access_task.task, user_access_task.usr) |
| |
| task_access_function = \ |
| is_public_function(task_access_function.function) or \ |
| function_owner(task_access_function.function, _) <= task_participant(task_access_function.task, _) |
| |
| task_access_data = data_owner(task_access_data.data, _) <= task_participant(task_access_data.task, _) |