Fix sec bug with server creation roles

Retain current java version in dropdown.
This commit is contained in:
amcmanu3 2022-06-21 01:18:19 -04:00
parent b5331501ec
commit c4fb6482cc
3 changed files with 47 additions and 6 deletions

View File

@ -633,6 +633,24 @@ class PanelHandler(BaseHandler):
)
return
page_data["java_versions"] = Helpers.find_java_installs()
server_obj: Servers = self.controller.servers.get_server_obj(server_id)
current_java = shlex.split(server_obj.execution_command)[0]
page_java = []
page_data["java_versions"].append("java")
page_data["current_java"] = current_java
for version in page_data["java_versions"]:
temp_version = version + "/bin/java"
if os.name == "nt":
if version == "java" and current_java != version:
page_java.append(version)
else:
if temp_version != current_java and version != "java":
page_java.append(version)
else:
if version != current_java:
page_java.append(version)
page_data["java_versions"] = page_java
if subpage == "files":
if (
@ -1371,10 +1389,17 @@ class PanelHandler(BaseHandler):
return
execution_list = shlex.split(execution_command)
if java_selection:
if self.helper.is_os_windows():
execution_list[0] = '"' + java_selection + '/bin/java"'
if java_selection != "java":
if (
self.helper.is_os_windows()
and not "/bin/java" in java_selection
):
if not "/bin/java" in java_selection:
execution_list[0] = '"' + java_selection + '/bin/java"'
else:
execution_list[0] = '"' + java_selection + '"'
else:
execution_list[0] = '"' + java_selection + '"'
execution_list[0] = "java"
execution_command = ""
for item in execution_list:
execution_command += item + " "
@ -1407,7 +1432,7 @@ class PanelHandler(BaseHandler):
server_obj.path = server_obj.path
server_obj.log_path = server_obj.log_path
server_obj.executable = server_obj.executable
server_obj.execution_command = server_obj.execution_command
server_obj.execution_command = execution_command
server_obj.server_ip = server_obj.server_ip
server_obj.server_port = server_obj.server_port
server_obj.executable_update_url = server_obj.executable_update_url

View File

@ -17,6 +17,15 @@ logger = logging.getLogger(__name__)
class ServerHandler(BaseHandler):
def get_user_roles(self):
user_roles = {}
for user_id in self.controller.users.get_all_user_ids():
user_roles_list = self.controller.users.get_user_roles_names(user_id)
# user_servers =
# self.controller.servers.get_authorized_servers(user.user_id)
user_roles[user_id] = user_roles_list
return user_roles
@tornado.web.authenticated
def get(self, page):
(
@ -283,7 +292,7 @@ class ServerHandler(BaseHandler):
if not superuser:
user_roles = self.controller.roles.get_all_roles()
else:
user_roles = self.controller.roles.get_all_roles()
user_roles = self.get_user_roles()
server = bleach.clean(self.get_argument("server", ""))
server_name = bleach.clean(self.get_argument("server_name", ""))
min_mem = bleach.clean(self.get_argument("min_memory", ""))

View File

@ -81,11 +81,18 @@
{% end %}
<div class="form-group">
<label for="java_selection">{{ translate('serverConfig', 'javaVersion', data['lang']) }} <small
class="text-muted ml-1"> - {{ translate('serverConfig', 'javaVersionDesc', data['lang'])
class="text-muted ml-1"> - EXPERIMENTAL -- PLEASE REPORT ANY BUGS &nbsp; {{
translate('serverConfig', 'javaVersionDesc', data['lang'])
}}</small> </label>
<select class="form-select form-control form-control-lg select-css" id="java_selection"
name="java_selection" form="config_form">
{% if data['current_java'] %}
<option value="{{data['current_java']}}">{{data['current_java']}}</option>
<option value="">{{ translate('serverConfig', 'javaNoChange', data['lang'])}}</option>
{% else %}
<option value="">{{ translate('serverConfig',
'javaNoChange', data['lang'])}}</option>
{% end %}
{% for path in data['java_versions'] %}
<option value="{{path}}">{{path}}</option>
{% end %}