mirror of
https://gitlab.com/crafty-controller/crafty-4.git
synced 2024-08-30 18:23:09 +00:00
Merge branch 'dev' into dev-fixed-sidebar-V2
This commit is contained in:
commit
21d119d58e
@ -4,6 +4,9 @@
|
|||||||
TBD
|
TBD
|
||||||
### Bug fixes
|
### Bug fixes
|
||||||
- Fix conditional issue with zip imports/uploads ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/476))
|
- Fix conditional issue with zip imports/uploads ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/476))
|
||||||
|
- Fix API Schedule updates ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/478))
|
||||||
|
- Add port constraint for all server creation & api ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/479))
|
||||||
|
- Clean up backup configs when deleting servers ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/480))
|
||||||
### Tweaks
|
### Tweaks
|
||||||
- Fix sidebar to not move when scrolling ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/481))
|
- Fix sidebar to not move when scrolling ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/481))
|
||||||
### Lang
|
### Lang
|
||||||
|
@ -134,8 +134,13 @@ class ServersController(metaclass=Singleton):
|
|||||||
role_id = role.role_id
|
role_id = role.role_id
|
||||||
role_data = RolesController.get_role_with_servers(role_id)
|
role_data = RolesController.get_role_with_servers(role_id)
|
||||||
role_data["servers"] = {server_id}
|
role_data["servers"] = {server_id}
|
||||||
|
# Remove server id permissions from role
|
||||||
PermissionsServers.delete_roles_permissions(role_id, role_data["servers"])
|
PermissionsServers.delete_roles_permissions(role_id, role_data["servers"])
|
||||||
|
# Remove roles from server
|
||||||
PermissionsServers.remove_roles_of_server(server_id)
|
PermissionsServers.remove_roles_of_server(server_id)
|
||||||
|
# Remove backup configs tied to server
|
||||||
|
self.management_helper.remove_backup_config(server_id)
|
||||||
|
# Finally remove server
|
||||||
self.servers_helper.remove_server(server_id)
|
self.servers_helper.remove_server(server_id)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -139,7 +139,7 @@ def ping(ip, port):
|
|||||||
try:
|
try:
|
||||||
sock.connect((ip, port))
|
sock.connect((ip, port))
|
||||||
|
|
||||||
except socket.error:
|
except:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -367,6 +367,10 @@ class HelpersManagement:
|
|||||||
}
|
}
|
||||||
return conf
|
return conf
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def remove_backup_config(server_id):
|
||||||
|
Backups.delete().where(Backups.server_id == server_id).execute()
|
||||||
|
|
||||||
def set_backup_config(
|
def set_backup_config(
|
||||||
self,
|
self,
|
||||||
server_id: int,
|
server_id: int,
|
||||||
|
@ -420,6 +420,7 @@ class Controller:
|
|||||||
and root_create_data["create_type"] == "download_jar"
|
and root_create_data["create_type"] == "download_jar"
|
||||||
):
|
):
|
||||||
self.server_jars.download_jar(
|
self.server_jars.download_jar(
|
||||||
|
create_data["category"],
|
||||||
create_data["type"],
|
create_data["type"],
|
||||||
create_data["version"],
|
create_data["version"],
|
||||||
full_jar_path,
|
full_jar_path,
|
||||||
|
@ -436,7 +436,15 @@ class TasksManager:
|
|||||||
and "cron_string" in job_data
|
and "cron_string" in job_data
|
||||||
and "interval_type" in job_data
|
and "interval_type" in job_data
|
||||||
):
|
):
|
||||||
return
|
if not "enabled" in job_data:
|
||||||
|
return
|
||||||
|
|
||||||
|
if job_data["enabled"] is True:
|
||||||
|
job_data = HelpersManagement.get_scheduled_task(sch_id)
|
||||||
|
job_data["server_id"] = job_data["server_id"]["server_id"]
|
||||||
|
else:
|
||||||
|
self.scheduler.remove_job(str(sch_id))
|
||||||
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if job_data["interval"] != "reaction":
|
if job_data["interval"] != "reaction":
|
||||||
|
@ -1501,6 +1501,12 @@ class PanelHandler(BaseHandler):
|
|||||||
execution_command = self.get_argument("execution_command", None)
|
execution_command = self.get_argument("execution_command", None)
|
||||||
server_ip = self.get_argument("server_ip", None)
|
server_ip = self.get_argument("server_ip", None)
|
||||||
server_port = self.get_argument("server_port", None)
|
server_port = self.get_argument("server_port", None)
|
||||||
|
if int(server_port) < 1 or int(server_port) > 65535:
|
||||||
|
self.redirect(
|
||||||
|
"/panel/error?error=Constraint Error: "
|
||||||
|
"Port must be greater than 0 and less than 65535"
|
||||||
|
)
|
||||||
|
return
|
||||||
executable_update_url = self.get_argument("executable_update_url", "")
|
executable_update_url = self.get_argument("executable_update_url", "")
|
||||||
show_status = int(float(self.get_argument("show_status", "0")))
|
show_status = int(float(self.get_argument("show_status", "0")))
|
||||||
else:
|
else:
|
||||||
|
@ -648,7 +648,7 @@ class ApiServersIndexHandler(BaseApiHandler):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
data = orjson.loads(self.request.body)
|
data = orjson.loads(self.request.body)
|
||||||
except orjson.decoder.JSONDecodeError as e:
|
except orjson.JSONDecodeError as e:
|
||||||
return self.finish_json(
|
return self.finish_json(
|
||||||
400, {"status": "error", "error": "INVALID_JSON", "error_data": str(e)}
|
400, {"status": "error", "error": "INVALID_JSON", "error_data": str(e)}
|
||||||
)
|
)
|
||||||
@ -664,7 +664,22 @@ class ApiServersIndexHandler(BaseApiHandler):
|
|||||||
"error_data": str(e),
|
"error_data": str(e),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
# Check to make sure port is allowable
|
||||||
|
if data["monitoring_type"] == "minecraft_java":
|
||||||
|
try:
|
||||||
|
port = data["minecraft_java_monitoring_data"]["port"]
|
||||||
|
except:
|
||||||
|
port = 25565
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
port = data["minecraft_bedrock_monitoring_data"]["port"]
|
||||||
|
except:
|
||||||
|
port = 19132
|
||||||
|
if port > 65535 or port < 1:
|
||||||
|
self.finish_json(
|
||||||
|
405, {"status": "error", "error": "DATA CONSTRAINT FAILED"}
|
||||||
|
)
|
||||||
|
return
|
||||||
new_server_id, new_server_uuid = self.controller.create_api_server(
|
new_server_id, new_server_uuid = self.controller.create_api_server(
|
||||||
data, user["user_id"]
|
data, user["user_id"]
|
||||||
)
|
)
|
||||||
|
@ -4,7 +4,6 @@ import json
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
from jsonschema import ValidationError, validate
|
from jsonschema import ValidationError, validate
|
||||||
from app.classes.models.management import HelpersManagement
|
|
||||||
from app.classes.models.server_permissions import EnumPermissionsServer
|
from app.classes.models.server_permissions import EnumPermissionsServer
|
||||||
|
|
||||||
from app.classes.web.base_api_handler import BaseApiHandler
|
from app.classes.web.base_api_handler import BaseApiHandler
|
||||||
@ -97,7 +96,7 @@ class ApiServersServerTasksTaskIndexHandler(BaseApiHandler):
|
|||||||
if str(data.get("parent")) == str(task_id) and data.get("parent") is not None:
|
if str(data.get("parent")) == str(task_id) and data.get("parent") is not None:
|
||||||
data["parent"] = None
|
data["parent"] = None
|
||||||
|
|
||||||
HelpersManagement.update_scheduled_task(task_id, data)
|
self.tasks_manager.update_job(task_id, data)
|
||||||
|
|
||||||
self.controller.management.add_to_audit_log(
|
self.controller.management.add_to_audit_log(
|
||||||
auth_data[4]["user_id"],
|
auth_data[4]["user_id"],
|
||||||
|
@ -311,6 +311,12 @@ class ServerHandler(BaseHandler):
|
|||||||
min_mem = bleach.clean(self.get_argument("min_memory", ""))
|
min_mem = bleach.clean(self.get_argument("min_memory", ""))
|
||||||
max_mem = bleach.clean(self.get_argument("max_memory", ""))
|
max_mem = bleach.clean(self.get_argument("max_memory", ""))
|
||||||
port = bleach.clean(self.get_argument("port", ""))
|
port = bleach.clean(self.get_argument("port", ""))
|
||||||
|
if int(port) < 1 or int(port) > 65535:
|
||||||
|
self.redirect(
|
||||||
|
"/panel/error?error=Constraint Error: "
|
||||||
|
"Port must be greater than 0 and less than 65535"
|
||||||
|
)
|
||||||
|
return
|
||||||
import_type = bleach.clean(self.get_argument("create_type", ""))
|
import_type = bleach.clean(self.get_argument("create_type", ""))
|
||||||
import_server_path = bleach.clean(self.get_argument("server_path", ""))
|
import_server_path = bleach.clean(self.get_argument("server_path", ""))
|
||||||
import_server_jar = bleach.clean(self.get_argument("server_jar", ""))
|
import_server_jar = bleach.clean(self.get_argument("server_jar", ""))
|
||||||
@ -451,6 +457,12 @@ class ServerHandler(BaseHandler):
|
|||||||
server = bleach.clean(self.get_argument("server", ""))
|
server = bleach.clean(self.get_argument("server", ""))
|
||||||
server_name = bleach.clean(self.get_argument("server_name", ""))
|
server_name = bleach.clean(self.get_argument("server_name", ""))
|
||||||
port = bleach.clean(self.get_argument("port", ""))
|
port = bleach.clean(self.get_argument("port", ""))
|
||||||
|
if int(port) < 1 or int(port) > 65535:
|
||||||
|
self.redirect(
|
||||||
|
"/panel/error?error=Constraint Error: "
|
||||||
|
"Port must be greater than 0 and less than 65535"
|
||||||
|
)
|
||||||
|
return
|
||||||
import_type = bleach.clean(self.get_argument("create_type", ""))
|
import_type = bleach.clean(self.get_argument("create_type", ""))
|
||||||
import_server_path = bleach.clean(self.get_argument("server_path", ""))
|
import_server_path = bleach.clean(self.get_argument("server_path", ""))
|
||||||
import_server_exe = bleach.clean(self.get_argument("server_jar", ""))
|
import_server_exe = bleach.clean(self.get_argument("server_jar", ""))
|
||||||
|
@ -131,7 +131,7 @@
|
|||||||
<label for="port2">{{ translate('serverWizard', 'serverPort', data['lang']) }}
|
<label for="port2">{{ translate('serverWizard', 'serverPort', data['lang']) }}
|
||||||
<small></small></label>
|
<small></small></label>
|
||||||
<input type="number" class="form-control" id="port2" name="port" value="19132" step="1" min="1"
|
<input type="number" class="form-control" id="port2" name="port" value="19132" step="1" min="1"
|
||||||
required>
|
max="65535" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
@ -241,7 +241,7 @@
|
|||||||
<label for="port3">{{ translate('serverWizard', 'serverPort', data['lang']) }}
|
<label for="port3">{{ translate('serverWizard', 'serverPort', data['lang']) }}
|
||||||
<small></small></label>
|
<small></small></label>
|
||||||
<input type="number" class="form-control" id="port3" name="port" value="19132" step="1" min="1"
|
<input type="number" class="form-control" id="port3" name="port" value="19132" step="1" min="1"
|
||||||
required>
|
max="65535" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -387,7 +387,7 @@
|
|||||||
<label for="port3">{{ translate('serverWizard', 'serverPort', data['lang']) }} <small> - {{
|
<label for="port3">{{ translate('serverWizard', 'serverPort', data['lang']) }} <small> - {{
|
||||||
translate('serverWizard', 'defaultPort', data['lang']) }}</small></label>
|
translate('serverWizard', 'defaultPort', data['lang']) }}</small></label>
|
||||||
<input type="number" class="form-control" id="port4" name="port" value="19132" step="1" min="1"
|
<input type="number" class="form-control" id="port4" name="port" value="19132" step="1" min="1"
|
||||||
required>
|
max="65535" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@
|
|||||||
<label for="port1">{{ translate('serverWizard', 'serverPort', data['lang']) }} <small> - {{
|
<label for="port1">{{ translate('serverWizard', 'serverPort', data['lang']) }} <small> - {{
|
||||||
translate('serverWizard', 'defaultPort', data['lang']) }}</small></label>
|
translate('serverWizard', 'defaultPort', data['lang']) }}</small></label>
|
||||||
<input type="number" class="form-control" id="port1" name="port" value="25565" step="1" min="1"
|
<input type="number" class="form-control" id="port1" name="port" value="25565" step="1" min="1"
|
||||||
required>
|
max="65535 " required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
@ -224,7 +224,7 @@
|
|||||||
<label for="port2">{{ translate('serverWizard', 'serverPort', data['lang']) }} <small> - {{
|
<label for="port2">{{ translate('serverWizard', 'serverPort', data['lang']) }} <small> - {{
|
||||||
translate('serverWizard', 'defaultPort', data['lang']) }}</small></label>
|
translate('serverWizard', 'defaultPort', data['lang']) }}</small></label>
|
||||||
<input type="number" class="form-control" id="port2" name="port" value="25565" step="1" min="1"
|
<input type="number" class="form-control" id="port2" name="port" value="25565" step="1" min="1"
|
||||||
required>
|
max="65535" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
@ -351,7 +351,7 @@
|
|||||||
<label for="port3">{{ translate('serverWizard', 'serverPort', data['lang']) }} <small> - {{
|
<label for="port3">{{ translate('serverWizard', 'serverPort', data['lang']) }} <small> - {{
|
||||||
translate('serverWizard', 'defaultPort', data['lang']) }}</small></label>
|
translate('serverWizard', 'defaultPort', data['lang']) }}</small></label>
|
||||||
<input type="number" class="form-control" id="port3" name="port" value="25565" step="1" min="1"
|
<input type="number" class="form-control" id="port3" name="port" value="25565" step="1" min="1"
|
||||||
required>
|
max="65535" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -515,7 +515,7 @@
|
|||||||
<label for="port3">{{ translate('serverWizard', 'serverPort', data['lang']) }} <small> - {{
|
<label for="port3">{{ translate('serverWizard', 'serverPort', data['lang']) }} <small> - {{
|
||||||
translate('serverWizard', 'defaultPort', data['lang']) }}</small></label>
|
translate('serverWizard', 'defaultPort', data['lang']) }}</small></label>
|
||||||
<input type="number" class="form-control" id="port3" name="port" value="25565" step="1" min="1"
|
<input type="number" class="form-control" id="port3" name="port" value="25565" step="1" min="1"
|
||||||
required>
|
max="65535" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user