| | 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 | |