| 76 | == Проверка дали даден корисник поседува дадена пермисија за даден ресурс |
| 77 | |
| 78 | |
| 79 | {{{ |
| 80 | SELECT COALESCE( |
| 81 | EXISTS (SELECT 1 |
| 82 | FROM users_project_roles upr |
| 83 | JOIN project_role pr |
| 84 | ON upr.role_id = pr.id |
| 85 | JOIN role_permissions rp |
| 86 | ON pr.id = rp.role_id |
| 87 | LEFT JOIN role_permissions_overrides rpo |
| 88 | ON pr.id = rpo.role_id |
| 89 | AND rpo.permission_name = rp.permission_name |
| 90 | AND rpo.project_resource_id = :resourceId |
| 91 | |
| 92 | WHERE upr.user_id = :userId |
| 93 | AND pr.project_id = :projectId |
| 94 | AND rp.permission_name = :permissionName |
| 95 | AND ( |
| 96 | (pr.override_type = 'INCLUDE' AND rpo.project_resource_id IS NOT NULL) |
| 97 | OR (pr.override_type = 'EXCLUDE' AND rpo.project_resource_id IS NULL) |
| 98 | )), FALSE |
| 99 | ) AS has_access; |
| 100 | }}} |
| 101 | |
| 102 | |
| 103 | |