@@ -29,7 +29,7 @@ def index
2929 return head :forbidden unless checker . is_authorized?
3030 end
3131
32- getter = ForestLiana ::ResourcesGetter . new ( @resource , params )
32+ getter = ForestLiana ::ResourcesGetter . new ( @resource , params , forest_user )
3333 getter . perform
3434
3535 respond_to do |format |
@@ -63,7 +63,7 @@ def count
6363 )
6464 return head :forbidden unless checker . is_authorized?
6565
66- getter = ForestLiana ::ResourcesGetter . new ( @resource , params )
66+ getter = ForestLiana ::ResourcesGetter . new ( @resource , params , forest_user )
6767 getter . count
6868
6969 render serializer : nil , json : { count : getter . records_count }
@@ -89,10 +89,12 @@ def show
8989 checker = ForestLiana ::PermissionsChecker . new ( @resource , 'readEnabled' , @rendering_id , user_id : forest_user [ 'id' ] )
9090 return head :forbidden unless checker . is_authorized?
9191
92- getter = ForestLiana ::ResourceGetter . new ( @resource , params )
92+ getter = ForestLiana ::ResourceGetter . new ( @resource , params , forest_user )
9393 getter . perform
9494
9595 render serializer : nil , json : render_record_jsonapi ( getter . record )
96+ rescue ActiveRecord ::RecordNotFound
97+ render serializer : nil , json : { status : 404 } , status : :not_found
9698 rescue => error
9799 FOREST_LOGGER . error "Record Show error: #{ error } \n #{ format_stacktrace ( error ) } "
98100 internal_server_error
@@ -127,7 +129,7 @@ def update
127129 checker = ForestLiana ::PermissionsChecker . new ( @resource , 'editEnabled' , @rendering_id , user_id : forest_user [ 'id' ] )
128130 return head :forbidden unless checker . is_authorized?
129131
130- updater = ForestLiana ::ResourceUpdater . new ( @resource , params )
132+ updater = ForestLiana ::ResourceUpdater . new ( @resource , params , forest_user )
131133 updater . perform
132134
133135 if updater . errors
@@ -149,7 +151,14 @@ def destroy
149151 checker = ForestLiana ::PermissionsChecker . new ( @resource , 'deleteEnabled' , @rendering_id , user_id : forest_user [ 'id' ] )
150152 return head :forbidden unless checker . is_authorized?
151153
152- @resource . destroy ( params [ :id ] ) if @resource . exists? ( params [ :id ] )
154+ collection_name = ForestLiana . name_for ( @resource )
155+ scoped_records = ForestLiana ::ScopeManager . apply_scopes_on_records ( @resource , forest_user , collection_name , params [ :timezone ] )
156+
157+ unless scoped_records . exists? ( params [ :id ] )
158+ return render serializer : nil , json : { status : 404 } , status : :not_found
159+ end
160+
161+ scoped_records . destroy ( params [ :id ] )
153162
154163 head :no_content
155164 rescue => error
@@ -161,7 +170,7 @@ def destroy_bulk
161170 checker = ForestLiana ::PermissionsChecker . new ( @resource , 'deleteEnabled' , @rendering_id , user_id : forest_user [ 'id' ] )
162171 return head :forbidden unless checker . is_authorized?
163172
164- ids = ForestLiana ::ResourcesGetter . get_ids_from_request ( params )
173+ ids = ForestLiana ::ResourcesGetter . get_ids_from_request ( params , forest_user )
165174 @resource . destroy ( ids ) if ids &.any?
166175
167176 head :no_content
0 commit comments