PluginProbe
FluentCommunity – Ultra-Fast High-Performance Social Network, Community, LMS & Online Courses / 2.10.01
FluentCommunity – Ultra-Fast High-Performance Social Network, Community, LMS & Online Courses v2.10.01
2.11.0 2.10.0 2.10.01 2.9.1 2.9.0 2.8.1 2.8.0 2.7.7 2.7.5 2.7.0 2.6.01 2.6.0 2.5.0 2.4.01 trunk 1.0.90 1.0.91 1.0.92 1.0.93 1.0.94 1.0.95 1.0.96 1.0.97 1.0.98 1.0.99 All 78 releases
← All changes | app/Http/Policies/SpacePolicy.php +25 -5 2.7.0 → 2.10.01 View file →
@@ -3,8 +3,9 @@
3 3 namespace FluentCommunity\App\Http\Policies;
4 4
5 5 use FluentCommunity\App\Models\User;
6 6 use FluentCommunity\App\Models\Space;
7 +use FluentCommunity\App\Models\BaseSpace;
7 8 use FluentCommunity\App\Services\Helper;
8 9 use FluentCommunity\Framework\Http\Request\Request;
9 10
10 11 class SpacePolicy extends BasePolicy
@@ -35,14 +36,18 @@
35 36 }
36 37
37 38 public function join(Request $request)
38 39 {
39 - return !!get_current_user_id();
40 + $xProfile = Helper::getCurrentProfile(true);
41 +
42 + return $xProfile && $xProfile->status == 'active';
40 43 }
41 44
42 45 public function leave(Request $request)
43 46 {
44 - return !!get_current_user_id();
47 + $xProfile = Helper::getCurrentProfile(true);
48 +
49 + return $xProfile && $xProfile->status == 'active';
45 50 }
46 51
47 52 public function create(Request $request)
48 53 {
@@ -48,8 +53,13 @@
48 53 {
49 54 return $this->canManageCommunity($request, null);
50 55 }
51 56
57 + public function searchProduct(Request $request)
58 + {
59 + return $this->canManageCommunity($request);
60 + }
61 +
52 62 public function patchBySlug(Request $request, $slug)
53 63 {
54 64 return $this->canManageCommunity($request, Space::where('slug', $slug)->first());
55 65 }
@@ -94,9 +104,9 @@
94 104
95 105 public function getSpaceGroups(Request $request)
96 106 {
97 107 if ($request->get('options_only')) {
98 - return true;
108 + return !!Helper::canAccessPortal(get_current_user_id());
99 109 }
100 110
101 111 return $this->canManageSpace($request, null);
102 112 }
@@ -135,8 +145,18 @@
135 145 {
136 146 return $this->canManageSpace($request, Space::where('slug', $spaceSlug)->first());
137 147 }
138 148
149 + public function addPaywall(Request $request, $spaceId)
150 + {
151 + return $this->canManageCommunity($request, BaseSpace::withoutGlobalScopes()->find((int) $spaceId));
152 + }
153 +
154 + public function removePaywall(Request $request, $spaceId)
155 + {
156 + return $this->canManageCommunity($request, BaseSpace::withoutGlobalScopes()->find((int) $spaceId));
157 + }
158 +
139 159 protected function canManageCommunity(Request $request, $space = false)
140 160 {
141 161 $user = User::find(get_current_user_id());
142 162
@@ -148,9 +168,9 @@
148 168 return true;
149 169 }
150 170
151 171 if ($space === false) {
152 - $space = Space::find($request->get('space_id'));
172 + $space = Space::find((int) $request->get('space_id'));
153 173 }
154 174
155 175 return $space && $user->getSpaceRole($space) === 'admin';
156 176 }
@@ -167,9 +187,9 @@
167 187 return true;
168 188 }
169 189
170 190 if ($space === false) {
171 - $space = Space::find($request->get('space_id'));
191 + $space = Space::find((int) $request->get('space_id'));
172 192 }
173 193
174 194 return $space && $user->getSpaceRole($space) === 'admin';
175 195 }