Commit Graph

970 Commits

Author SHA1 Message Date
luukas
89b6e239bc
Merge branch 'dev' into experimental/lukas-codebase-improvements 2022-06-01 22:35:11 +03:00
Andrew
28ffbe4627 Remove unnecessary pass 2022-06-01 15:20:16 -04:00
Andrew
3946a926bf Remove print statement 2022-06-01 15:17:13 -04:00
Andrew
fdc88451b9 Add exception for permissions in helpers check 2022-06-01 15:11:37 -04:00
Zedifus
de96844276 Remove useless return from a_backup_server
(Pylint R1711)
2022-06-01 18:34:04 +01:00
Zedifus
256c6567fd Remove temporary directory on backup completion
When running backups, the temporary directory wasn't being properly removed.
Added logic to remove the temporary directory upon backup completion,
cleaned up the try/except a bit.
2022-06-01 18:28:24 +01:00
luukas
45a1b835fb
Fix server error checking in API stdin endpoint 2022-06-01 14:17:33 +03:00
luukas
e0b0e52bd5
Add stdin route for the API 2022-05-31 00:11:17 +03:00
Silversthorn
ec2d967419 Fixing Commands to server 2022-05-30 22:49:42 +02:00
Silversthorn
150e8e5794 Renaming Server in shared to ServerInstance 2022-05-30 22:40:34 +02:00
Silversthorn
f597a26e5b Trying to fix stuff 2022-05-30 22:05:36 +02:00
Silversthorn
b0ea943992 Fixing lasts pylint warning 2022-05-30 19:32:11 +02:00
Silversthorn
8f5c688b72 Fixing Pylint issues 2022-05-30 19:28:39 +02:00
luukas
290c398198
Add command queue stdin commands back 2022-05-30 18:23:37 +03:00
Silversthorn
37bda32164 Fixing moved functions calls 2022-05-30 07:36:25 +02:00
luukas
7885b2c8f7
Fix null writer 2022-05-28 21:11:09 +03:00
luukas
b0e356f999
Fix host stats error messages 2022-05-28 19:43:37 +03:00
luukas
0df5fedf2b
Add try-excepts for host stats 2022-05-28 19:32:54 +03:00
luukas
d1beb2f125
Redirect stderr to null during psutil's import.
On some systems /proc might be unavailable and psutil would freak out
printing several exceptions to stderr but strangely not raising the
exceptions for upper scope to handle
2022-05-28 19:00:25 +03:00
Silversthorn
3b4253de9b Fixing get_authorized_server 2022-05-26 23:19:59 +02:00
Silversthorn
6fae395185 Fixing issues for latest stats 2022-05-26 15:43:24 +02:00
Silversthorn
99b28efd33 Merge branch 'dev' into dev-StatsDBImprovement 2022-05-26 15:39:52 +02:00
Silversthorn
be1930c7c7 fixing server shutdown gracefull exit 2022-05-26 15:28:54 +02:00
Silversthorn
2b484d5a07 fixing download jar 2022-05-26 15:20:21 +02:00
Silversthorn
056856cf98 Fixing Helpers issue 2022-05-26 15:02:47 +02:00
Silversthorn
8423cc24c1 I'm breaking/fixing stuff 2022-05-26 14:50:20 +02:00
Andrew
39915ef53c Fix critical bad stats push 2022-05-26 06:49:51 -04:00
luukas
47fc398f26
Fix CORS preflight 2022-05-26 00:31:58 +03:00
Andrew
b0b9936df7 Merge branch 'bugfix/stats-db-select' into 'dev'
Get rid of the stats database proxy

See merge request crafty-controller/crafty-4!276
2022-05-25 18:29:23 +00:00
Andrew
b293164e12 Add crash detection to realtime stats 2022-05-25 14:26:13 -04:00
luukas
8ce7a96071
Use a better ANSI escape regex in the API logs 2022-05-25 18:41:41 +03:00
luukas
2e51fa9629
Remove newline characters from API file logs 2022-05-25 18:41:16 +03:00
luukas
3956d9c699
Remove stdin sending from command_watcher
Reasons:
* It's unused in our program
* It can be a start to security vulnerabilities.
  I've seen many routes add commands to `Commands` without validation.
2022-05-25 17:44:09 +03:00
Silversthorn
5a1353373a trying something new 2022-05-25 15:54:35 +02:00
luukas
ca450f21ed
Document set_passwd and threads prompt commands
Help messages:
set_passwd: Set a user's password. Example: set_passwd admin
threads: Get all of the Python threads used by Crafty
2022-05-25 16:25:49 +03:00
luukas
8e13b4e11d
Simplify helpers setting methods 2022-05-25 16:21:34 +03:00
luukas
0eac0721ea
Remove unused DatabaseShortcuts imports 2022-05-25 16:17:01 +03:00
luukas
4e84eee5a5
Rename server stats variables to server_stats 2022-05-25 16:15:51 +03:00
luukas
83018c6860
Calculate the min stats date with timedelta
This is more correct than just using days.
I've also tested this working in a completely separate Peewee project.
2022-05-25 16:14:42 +03:00
luukas
a937a94ac8
Use a better variable name for stat disappear date
* Rename occurences of `last_week` with `minimum_to_exist`
2022-05-25 14:49:17 +03:00
luukas
4b707aa9d1
Don't use get_latest_server_stats
Use get_server_stats_by_id instead of get_latest_server_stats

The reasoning behind this is that all usages of get_latest_server_stats
had `DatabaseShortcuts.return_rows(latest)[0]`, which
get_server_stats_by_id already did
2022-05-25 14:43:05 +03:00
luukas
166272e12c
Replace .count() != 0 with .exists() 2022-05-25 14:24:34 +03:00
luukas
fae4aeb492
Fix CQ C0412 2022-05-25 14:16:14 +03:00
luukas
cf2ff2f2d5
Try to get rid of database_stats_proxy 2022-05-25 14:00:22 +03:00
luukas
2ac9118152 Merge remote's bugfix/api-v2-bugfixes to local 2022-05-25 00:58:32 +03:00
luukas
cbc73b7e92
Fix routing for the user permissions handler 2022-05-25 00:58:10 +03:00
luukas
57ef5e27dd
Add route for viewing user Crafty permissions
The route includes the permission mask, counters and limits
2022-05-25 00:55:49 +03:00
luukas
6dadce2c9a
Enable changing more of yourself with superuser
Enable modifying your own superuser status, permissions and roles if you
have superuser status
2022-05-25 00:43:49 +03:00
luukas
b0d342e949
Check if something is in a dict with a simpler way
* Replace `data.get("key", None) is not None` with `"key" in data`
2022-05-25 00:39:16 +03:00
luukas
2aa2d14f5e
Improve the invalidate tokens API handler
* Remove the TODO
* Replace the Console.info with logger.debug
2022-05-25 00:35:11 +03:00
luukas
9a9d101015
Add pasword hashing to API user modification 2022-05-25 00:32:31 +03:00
luukas
54ff888002
Fix user modification via the API 2022-05-25 00:29:31 +03:00
Zedifus
d0596af4c9 Add exemption orjson no-member falsepositive 2022-05-23 22:54:06 +01:00
luukas
afdffcd836
Optimize get_user_permissions_mask 2022-05-23 23:03:50 +03:00
luukas
4c981f50c2
Add more permission validation in user creation 2022-05-23 22:45:27 +03:00
luukas
0d62223982 Merge branch 'dev' into bugfix/api-v2-bugfixes 2022-05-23 20:20:49 +03:00
Iain Powrie
da483b9291 Merge branch 'bug/pretzel-database-exit' into 'dev'
Fix error where database atomic is not needed

See merge request crafty-controller/crafty-4!269
2022-05-23 10:05:46 +00:00
Iain Powrie
f01f04ef97 Merge branch 'merge/cleanup-nosquash' into 'dev'
New merge request for cleanup

See merge request crafty-controller/crafty-4!268
2022-05-23 10:01:40 +00:00
Andrew
f099639cc6 Fix error where database atomic is not needed 2022-05-21 14:26:58 -04:00
luukas
8f8b2aa22f
Simplify MainPrompt.emptyline. 2022-05-21 02:04:03 +03:00
luukas
b49bca3279
Use a tab character in the threads prompt command
https://i.imgur.com/jy0Rlgm.png
2022-05-21 01:57:40 +03:00
luukas
b724fc500d
Improve the startup process 2022-05-21 01:53:17 +03:00
luukas
eff7aefb6e
Use local date and time formatting for Console 2022-05-21 01:41:48 +03:00
luukas
d97bcc608f
Fix info message in tornado server starter
Yes I know it's a 1 character replace
2022-05-21 00:00:21 +03:00
luukas
f82241f728
Fix circular import and linting for stats.py 2022-05-20 23:33:42 +03:00
luukas
ed9d994083
Fix linting in models/crafty_permissions.py 2022-05-20 23:23:18 +03:00
luukas
c1ebb16dff
Add typings to minecraft/stats.py 2022-05-20 22:05:37 +03:00
luukas
02f5318f76
Merge branch 'dev' into merge/pretzel-lukas-cleanup-nosquash 2022-05-20 22:04:41 +03:00
luukas
9ddcd13f2f
Fix W0611 & R1734 lint issues 2022-05-20 14:06:46 +03:00
luukas
dba3fafa87
Use shorthand for Controller.check_system_user
This reduced the code from 4 lines to 1 line.

The code
    if <condition>:
        return True
    else:
        return False
can be shortened to
    return <condition>
2022-05-20 13:31:30 +03:00
luukas
1b059b24df
Update get_*_column functions
Use getattr instead of model_to_dict in single columns. We might want to
change the functions later on so peewee's ForeignKeyField primary key
shorthand like model.server_id instead of model.server.server_id
will work.

This will very likely increase performance of the get_*_column functions
due to not having to call the model_to_dict function from Peewee's
helper library.
2022-05-20 13:15:50 +03:00
luukas
48948423c9
Fix various things in create_api_server 2022-05-20 01:33:02 +03:00
Iain Powrie
379f680312 Merge branch 'bug/pretzel-stats-db-name' into 'dev'
Change naming of servers stats to generic name

See merge request crafty-controller/crafty-4!264
2022-05-19 21:13:07 +00:00
amcmanu3
ca170b86e0 Change naming of servers stats to generic name 2022-05-19 12:14:30 -04:00
luukas
7a7c7501e6 Use relative path for latest.log 2022-05-19 17:27:36 +03:00
luukas
73175d0f82 Remove the root example from the new server schema
* It messed up https://json-schema-faker.js.org
* It wasn't updated for agree_to_eula
2022-05-19 16:32:18 +03:00
luukas
bd4a35b418 Make role add and edit use API v2 internal APIs 2022-05-19 16:13:25 +03:00
luukas
f763fa9d0c Fix API v2 server modification 2022-05-19 16:01:03 +03:00
amcmanu3
67e20302c9 Add get_perms_server back 2022-05-18 19:19:58 -04:00
Zedifus
4a83aaac0e Fix W0404 & C0412 Lint issues 2022-05-18 23:14:00 +01:00
luukas
87085cec3c Fix an IndexError in get_lang_page 2022-05-19 01:10:06 +03:00
Andrew
b7780682d5 Merge branch 'dev' into 'merge/api-v2'
# Conflicts:
#   app/classes/controllers/crafty_perms_controller.py
2022-05-18 21:56:39 +00:00
luukas
6407900609 Merge branch 'dev' into experimental/lukas-cleanup 2022-05-19 00:52:59 +03:00
Andrew
505364d7d5 Merge branch 'feature/pretzel-password-reset' into 'dev'
Add password reset to Crafty Console

See merge request crafty-controller/crafty-4!261
2022-05-18 21:40:04 +00:00
amcmanu3
d235d0b70b Add error for no user 2022-05-18 17:37:07 -04:00
amcmanu3
49965bf31f Add explaination to password fail. 2022-05-18 17:22:39 -04:00
luukas
0ecc0a62ca Fix a comment regarding the Logs permission 2022-05-19 00:04:14 +03:00
amcmanu3
bc6309c91b Appease the linter 2022-05-18 16:56:54 -04:00
Andrew
ca73a5f60b Merge branch 'dev' into 'experimental/feature/permission-matrix'
# Conflicts:
#   app/classes/web/panel_handler.py
2022-05-18 20:47:43 +00:00
luukas
2b34e2c824 Remove role_id from role modify response 2022-05-18 23:41:28 +03:00
amcmanu3
cfcc446d17 Remove TODO 2022-05-18 16:41:14 -04:00
luukas
d64756a30c Make modify role not fetch the role again 2022-05-18 23:13:22 +03:00
luukas
ae7984c784 Change modify role's server id type to integer 2022-05-18 23:11:40 +03:00
luukas
4c397ff454 Only allow number IDs to the user handlers 2022-05-18 22:54:44 +03:00
luukas
2bc26ef3fd Check invalid IDs on roles
* Only allow number IDs to the role handlers
* Catch DoesNotExist errors
2022-05-18 22:34:33 +03:00
luukas
8b0da5da4c Remove unnecessary prints or use logger.debug 2022-05-18 22:06:33 +03:00
amcmanu3
a833a29fb7 Allow super users to add roles/users 2022-05-18 14:35:51 -04:00
amcmanu3
12390306fd Add permissions checks for quantity for users/role
Remove the ability to add quantities for general users.
2022-05-18 14:33:22 -04:00
amcmanu3
e3248e8657 Change cron validation to allow day abbreviations 2022-05-18 13:53:55 -04:00
luukas
74198ff81c Add a try..except to audit log broadcast 2022-05-18 16:51:46 +03:00
luukas
4c64497a2f Add a JSON schema route 2022-05-18 15:58:54 +03:00
luukas
5bff6c12b4 Fix cq degradation: R1721 2022-05-18 13:05:58 +03:00
luukas
d67711e898 Fix cq degradation: C0411 2022-05-18 13:04:38 +03:00
luukas
7c85496eb8 Clean up enum-related functions 2022-05-18 01:55:05 +03:00
luukas
559a345f25 Merge branch 'dev' into merge/api-v2 2022-05-18 01:49:19 +03:00
luukas
14665042c6 Add and improve audit logging in the API 2022-05-18 01:34:31 +03:00
luukas
8c8ae652c8 Fix a bug in update_role_advanced
where you could not modify server permissions
2022-05-18 01:25:27 +03:00
luukas
f9e5b9bc5f Fix the duplicated add_server_creation in the API 2022-05-18 01:23:32 +03:00
luukas
8737c15fcf Add a permission matrix to the role add and edit 2022-05-18 01:09:58 +03:00
amcmanu3
e12814d0b0 Appease the linter 2022-05-17 16:01:37 -04:00
luukas
821ed7ef5d Make get_server_obj raise an error
Reason being: There is nothing that checks if it returns False
2022-05-17 21:43:15 +03:00
luukas
42af86b6f7 Merge branch 'dev' into experimental/lukas-cleanup 2022-05-17 21:21:47 +03:00
luukas
5dfd1aae12 Make more places use the check_server_id function. 2022-05-17 20:52:32 +03:00
amcmanu3
a2b711b5ac Add password reset to Crafty Console 2022-05-16 15:39:10 -04:00
luukas
e7e337bea1 Improve the start_server function 2022-05-16 18:16:04 +03:00
luukas
d83b964267 Improve server permission related functions 2022-05-16 18:01:15 +03:00
luukas
cd87a63f1e Improve permission related functions 2022-05-16 17:52:09 +03:00
luukas
d415c27a89 Make add_or_update_user more efficient with upsert 2022-05-16 17:15:46 +03:00
luukas
8d2f4ba32e Make get_all_permission_quantity_list dynamic 2022-05-16 17:10:57 +03:00
luukas
fbf820fd38 Make some model removals way more efficient 2022-05-16 01:18:08 +03:00
luukas
65ba65a67d Make model *_exists functions way more efficient 2022-05-16 01:12:03 +03:00
luukas
0115421243 Make queries narrower 2022-05-16 01:02:17 +03:00
luukas
27d310e2de Declutter set()s 2022-05-16 00:55:22 +03:00
Andrew
7d8515321b Revert bad changes for schedules 2022-05-15 15:59:55 -05:00
Andrew
4f6a90eb6a Remove unused import 2022-05-15 14:05:23 -05:00
Andrew
490fc86d4e Cleanup server schedule on delete 2022-05-15 14:00:24 -05:00
Andrew
e161e2cf0b Add cleanup method for server stats on delete 2022-05-15 13:28:02 -05:00
Andrew
0f19c0c787 Realtime server stats all the time 2022-05-15 13:16:28 -05:00
Andrew
984f4cc4d6 Change Files Aesthetic 2022-05-15 12:38:48 -05:00
Andrew
30618c7456 Term spacing between player name and message 2022-05-14 20:53:18 -05:00
luukas
930c6936d9 Add more advanced role APIs 2022-05-10 02:08:49 +03:00
Andrew
184e50a825 Fix bug where excluded dir not persistant 2022-05-09 13:34:45 -04:00
luukas
bf59e2de6c Add and fix API v2 and db
* Add basic role routes
* Add API v2 404 handler
* Add API v2 home handler pointing to the wiki
* Add tons more todos
* Add get_*_columns and get_*_column functions for many db models
* Modify and add tons of model and controller functions
2022-05-08 00:07:55 +03:00
luukas
721c9cfe12 Add the server creation endpoint 2022-05-05 14:02:23 +03:00
luukas
53459d83dc Merge branch 'feature/api-v2' into merge/api-v2 2022-05-05 03:32:09 +03:00
Silversthorn
84078935e8 Sorry, I forgot this one :/ 2022-04-28 22:40:27 +02:00
Silversthorn
0dcdc8ffc7 pylint happy ? ^^ 2022-04-28 22:40:24 +02:00
Silversthorn
16bbac7fd6 Moving Server Stats DB to Server Folder 2022-04-28 22:40:15 +02:00
Andrew
3c666e5702 Fix stack thrown on page refresh after clean db 2022-04-17 13:33:45 -04:00
Andrew
77bbde149a Fix fresh install side effects from DB rework 2022-04-17 13:27:00 -04:00
Andrew
fc1304d729 Fix file size bug when destination does not exist 2022-04-17 13:00:05 -04:00
Andrew
704ffc2742 Fix file unzip 2022-04-14 20:03:19 -04:00
Andrew
9fcd510be2 Make unzip_server snake case 2022-04-14 19:45:13 -04:00
Andrew
2dc85e6f27 Add table name for audit_log 2022-04-14 19:34:30 -04:00
Andrew
b380f09b06 Rename get_lang_page 2022-04-14 19:34:21 -04:00
luukas
20d32c04ce Fix login and token stuff 2022-04-14 18:48:46 +03:00
luukas
1aa0d65cf7 Merge branch feature/external-frontend to feature/api-v2 without the frontend 2022-04-14 15:33:53 +03:00
Zedifus
20141f3cba Fix typo at EOF
'0' is my Discord P-T-T Toggle 😅
2022-04-14 03:19:56 +01:00
Zedifus
92c8fc04f3 Refactor to standardize class/variable naming 2022-04-14 03:10:25 +01:00
Zedifus
0461c0c420 Cleanup unused import 2022-04-13 20:24:42 +01:00