Commit Graph

2197 Commits

Author SHA1 Message Date
Sebastian Serth
5c98ec74f0 Add legal links to Help modal 2023-02-24 19:55:23 +01:00
Sebastian Serth
f232ff634b Fix help modal not opening
The changed data attribute is required since updating to Bootstrap v5
2023-02-24 19:55:23 +01:00
Sebastian Serth
d6c95dd383 Default to first page for RfC pages 2023-02-22 00:05:33 +01:00
Sebastian Serth
2e825f2413 Fix pagination for RfCs 2023-02-21 23:44:34 +01:00
Sebastian Serth
7fe0fc02e2 Set Sentry context for RailsAdmin 2023-02-21 11:35:29 +01:00
Sebastian Serth
af843231d9 Add user details to RemoteEvaluationsController 2023-02-21 10:45:00 +01:00
Sebastian Serth
ddf041ac05 Check RfC visibility before redirecting users 2023-02-21 10:01:01 +01:00
Sebastian Serth
d03f2c7bf4 Slightly improve Statistics Controller performance 2023-02-21 01:27:32 +01:00
Sebastian Serth
d0b713ddcd Dramatically improve RfC query
While the code gets more complex, the new query will first filter all relevant RfCs and only use the `with_last_activity` scope for the current page.

Using `distinct` in the policy is not required (no duplicated RfCs), but causes issues for the ordering otherwise. Therefore, it is removed.

Fixes CODEOCEAN-J2
2023-02-21 01:27:32 +01:00
Sebastian Serth
34c387c6a1 Remove outdated methods from RequestForCommentPolicy 2023-02-20 23:47:06 +01:00
Sebastian Serth
d0717fb178 Reduce SQL queries for RfC index actions
By using includes and carefully selecting objects through references, all required objects are only queried once.
2023-02-20 23:47:06 +01:00
Sebastian Serth
76f592c88d Consider RfC visibility to view / change RfCs 2023-02-20 23:47:06 +01:00
Sebastian Serth
9c3392b324 Add consumer-based RfC Visibility settings
This setting will be useful to increase data protection, where users might not be allowed to see RfCs from other contexts.
2023-02-20 23:47:06 +01:00
Sebastian Serth
40c7a50834 Directly use ActiveRecord object instead of ID
This change will improve the performance by reducing unnecessary SELECT queries.
2023-02-18 19:28:26 +01:00
Sebastian Serth
6465404ebe Set sentry context after logging in 2023-02-18 19:27:46 +01:00
Sebastian Serth
9c3ec3c7ff Refactor submission scoring and testing
* Properly cancel code execution if running is prohibited
* Correctly monitor duration with Sentry
* Align methods with running submissions
2023-02-17 18:13:48 +01:00
Sebastian Serth
a1ec4579fe Properly cancel code execution if running is prohibited 2023-02-17 18:13:48 +01:00
Sebastian Serth
e632f95060 Prevent storing empty results
Fixes CODEOCEAN-HS
2023-02-17 18:13:48 +01:00
Sebastian Serth
326b5fce51 Allow assigning tips during exercise create
Fixes CODEOCEAN-H6
2023-02-16 11:23:52 +01:00
Sebastian Serth
e9cf79085a Refactor listing files to be independent of exiting runners
Previously, we were always fetching files, even if not required (e.g., for score runs). Now, we reduce the number of file listings and use a dedicated callback.
2023-02-16 10:50:01 +01:00
Sebastian Serth
e96eda69d7 Bulk insert LinterCheckRuns
Similar to TestrunMessages, we insert all linter check runs through a bulk operation, potentially reducing time.
2023-02-16 10:50:01 +01:00
Sebastian Serth
b375aed543 Bulk insert TestrunMessages
With Sentry, we identified that all TestrunMessages are created one-by-one (besides passing them all in an array to #create!). Therefore, we now do the validations on our own first and then store all once, dramatically reducing the required time.

Fixes CODEOCEAN-HP
2023-02-16 10:50:01 +01:00
Sebastian Serth
91c2e14fe8 Fix error handling during Runner::Connection close
Closes CODEOCEAN-HQ
2023-02-16 10:47:28 +01:00
Sebastian Serth
596a04b9da Handle ReadTimeouts for LTI consumer properly 2023-02-16 10:12:05 +01:00
Sebastian Serth
99372464aa Lock "sudo" switch for shell with root environments 2023-02-11 00:44:47 +01:00
Karol
90d713a1d4 fix (potential) problems with empty file_extensions 2023-02-09 18:42:24 +01:00
Karol
637f872f34 add file_extension validation for file_type 2023-02-09 18:42:24 +01:00
Karol
454b34275c fix file_type selection for Makefile 2023-02-09 18:42:24 +01:00
Sebastian Serth
04504973ba Adjust Sentry's user context 2023-02-03 00:16:52 +01:00
Sebastian Serth
e8983a28d9 Fix generated URLs for native files in subdirectories
Our handling of uploaded files (see FilesController#show_protected_upload) checks for the full file name including the file path. However, URLs generated by CarrierWave didn't contain any path information resulting in invalid URLs. The wrong behavior was only visible when serving native files was disabled in Rails (or by using the x_sendfile_header).
2023-01-20 23:53:17 +01:00
Sebastian Serth
234a4fe02b Deny /implement without execution environment
Also, fix a smaller typo in the locales
2023-01-20 23:53:08 +01:00
Sebastian Serth
2679f5fa56 Allow random selection for ProxyExercise 2023-01-20 21:02:20 +01:00
Sebastian Serth
873fefdd9e Use relative import paths for SCSS node modules 2023-01-14 11:32:57 +01:00
Sebastian Serth
fcc6d69982 Fix percentage value display for remote score 2023-01-12 18:50:50 +01:00
Sebastian Serth
87771b905a Fix rubocop offenses 2023-01-11 23:57:29 +01:00
Sebastian Serth
5d02251cbb Replace BooleanPresenceValidator with InclusionValidator
The `BooleanPresenceValidator` is causing issues with Ruby 3.2+ YJIT irregularly.

Fixes CODEOCEAN-GQ, fixes CODEOCEAN-GR
2023-01-08 14:10:14 +01:00
Sebastian Serth
922ba5df4e Fix rubocop offenses 2023-01-02 10:06:00 +01:00
Sebastian Serth
6a942ccf50 Capture exception for Scoring
Previously, an exception was caused by the tubesock gem but not sent to Sentry. This caused errors not to bubble up correctly but rather kill the current thread, leaving the user with a generic "WebSocket connection not established" message.

Probably, this should be removed when updating the WebSocket implementation.
2022-12-23 13:04:34 +01:00
Sebastian Serth
7cd61acbce I18n: Automatically choose locale through HTTP header 2022-12-20 10:26:32 +01:00
Sebastian Serth
8a6e0a8366 Catch empty files_json during conversion 2022-12-19 16:11:35 +01:00
Sebastian Serth
17356c3045 Allow redirect to main CodeOcean host
When a file cannot be retrieved any longer, we send a redirect to the previous locations. As we usually enable a different render host, Rails sees this redirect as a redirect to another host (from the render host to the main CodeOcean host).
2022-12-19 16:06:47 +01:00
Sebastian Serth
735f37d1dd Fix import of lodash module 2022-12-19 15:17:32 +01:00
Sebastian Serth
7a2e442d91 Reject reference implementations only for Runs 2022-12-12 20:53:46 +01:00
Sebastian Serth
838019343e ProFormA: Hide 'delayed' files by default 2022-12-08 10:57:36 +01:00
Sebastian Serth
bec235c8d6 Fix XML parsing with invalid LTI response
An invalid XML response may be returned if the LTI provider is unavailable and cannot handle our request. We decided against logging in Sentry as this affects a third party functionality we cannot fix ourselves.
Fixes CODEOCEAN-G2
2022-12-07 23:00:21 +01:00
Sebastian Serth
bc5baed05e Use exec_query for custom SQL execution
Also align how we use query Postgres from controllers.

The change is mainly due to regular (but not reproducible) issues with the `intervalstyle` defaulting to `postgres` (instead of `iso8601`) and thereby causing issues. We're just experimenting to see whether this change resolves the issue.
2022-12-06 22:41:00 +01:00
Sebastian Serth
da9a9b3e76 Ensure all text is visible during page load
We introduce the font-display property. See
https://developer.chrome.com/docs/lighthouse/performance/font-display/
2022-12-06 18:36:45 +01:00
Sebastian Serth
75c6dfd20b Rename actioncable integration (deprecation warning) 2022-12-06 15:26:50 +01:00
Sebastian Serth
de0c1d368c Add source map for sprockets 2022-12-06 15:26:50 +01:00
Sebastian Serth
9977e1614b Allow external redirect for render host and LTI
We only use the `launch_presentation_return_url` provided to the @provider, in order to prevent using an open redirect.
2022-12-05 22:38:13 +01:00