PluginProbe
FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration / 2.2.0
FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration v2.2.0
2.2.0 2.1.0 2.0.15 2.0.12 2.0.10 2.0.4 2.0.1 2.0.0 1.95.3 1.95.2 1.95 1.91.6 trunk 1.11 1.12 1.13 1.20 1.21 1.22 1.23 1.30 1.31 1.32 1.35 1.40 All 43 releases
fluent-boards / app / Http / Policies / UserPolicy.php

UserPolicy.php in FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration 2.2.0, at app/Http/Policies/UserPolicy.php

75 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace FluentBoards\App\Http\Policies;
4
5 use FluentBoards\App\Services\PermissionManager;
6 use FluentBoards\Framework\Http\Request\Request;
7
8 class UserPolicy extends BasePolicy
9 {
10
11 /**
12 * @param Request $request
13 *
14 * @return bool
15 */
16 public function verifyRequest(Request $request)
17 {
18 // Check if user has access to the app
19 if (!PermissionManager::hasAppAccess()) {
20 return false;
21 }
22
23 // Match the controller's URL target; query/body parameters must not override it.
24 $routeParams = $request->get_url_params();
25 if (!array_key_exists('id', $routeParams)) {
26 return true;
27 }
28
29 $targetUserId = intval($routeParams['id']);
30
31 return $targetUserId > 0 && PermissionManager::userCanAccessMemberProfile($targetUserId);
32 }
33
34 /** Only an authenticated Fluent Boards user may change their own name. */
35 public function updateDisplayName(Request $request)
36 {
37 $routeParams = $request->get_url_params();
38 $currentUserId = get_current_user_id();
39 return $currentUserId > 0
40 && (int) ($routeParams['id'] ?? 0) === $currentUserId
41 && PermissionManager::isFluentBoardsUser($currentUserId);
42 }
43
44 /** Apply the same ownership check to profile photo uploads. */
45 public function updateProfilePhoto(Request $request)
46 {
47 return $this->updateDisplayName($request);
48 }
49
50 /** MCP connections are managed only by their owner. */
51 public function getMcpConnections(Request $request)
52 {
53 $routeParams = $request->get_url_params();
54 $currentUserId = get_current_user_id();
55
56 return $currentUserId > 0 && (int) ($routeParams['id'] ?? 0) === $currentUserId;
57 }
58
59 public function createMcpConnection(Request $request)
60 {
61 return $this->getMcpConnections($request);
62 }
63
64 public function revokeMcpConnection(Request $request)
65 {
66 return $this->getMcpConnections($request);
67 }
68
69 public function globalSearch(Request $request)
70 {
71 return true;
72 }
73
74 }
75