def view_ssl_certificates(request): return_dict = {} try: cert_list, err = pki.get_ssl_certificates() if err: raise Exception(err) if "ack" in request.GET: if request.GET["ack"] == "deleted": return_dict[ 'ack_message'] = "The certificate has been successfully deleted" elif request.GET["ack"] == "created_self_signed_cert": return_dict[ 'ack_message'] = "A self signed SSL certificate has been successfully created" elif request.GET["ack"] == "uploaded_cert": return_dict[ 'ack_message'] = "A new SSL certificate has been successfully uploaded" return_dict["cert_list"] = cert_list return django.shortcuts.render_to_response( 'view_ssl_certificates.html', return_dict, context_instance=django.template.context.RequestContext(request)) except Exception, e: return_dict['base_template'] = "key_management_base.html" return_dict["page_title"] = 'SSL certificates' return_dict['tab'] = 'certificates_tab' return_dict["error"] = 'Error loading SSL certificates' return_dict["error_details"] = str(e) return django.shortcuts.render_to_response( "logged_in_error.html", return_dict, context_instance=django.template.context.RequestContext(request))
def view_ssl_certificates(request): return_dict = {} try: cert_list, err = pki.get_ssl_certificates() if err: raise Exception(err) if "ack" in request.GET: if request.GET["ack"] == "deleted": return_dict['ack_message'] = "The certificate has been successfully deleted" elif request.GET["ack"] == "created_self_signed_cert": return_dict['ack_message'] = "A self signed SSL certificate has been successfully created" elif request.GET["ack"] == "uploaded_cert": return_dict['ack_message'] = "A new SSL certificate has been successfully uploaded" return_dict["cert_list"] = cert_list return django.shortcuts.render_to_response('view_ssl_certificates.html', return_dict, context_instance=django.template.context.RequestContext(request)) except Exception, e: return_dict['base_template'] = "keys_certs_base.html" return_dict["page_title"] = 'SSL certificates' return_dict['tab'] = 'certificates_tab' return_dict["error"] = 'Error loading SSL certificates' return_dict["error_details"] = str(e) return django.shortcuts.render_to_response("logged_in_error.html", return_dict, context_instance=django.template.context.RequestContext(request))
def update_ftp_configuration(request): return_dict = {} try: config, err = vsftp.get_ftp_config() if err: raise Exception(err) pools, err = zfs.get_pools() ds_list = [] for pool in pools: for ds in pool["datasets"]: if ds['properties']['type']['value'] == 'filesystem': ds_list.append(ds["name"]) cert_list, err = pki.get_ssl_certificates() if err: raise Exception(err) cert_name_list = [] for cert in cert_list: cert_name_list.append(cert['name']) # print ds_list if not ds_list: raise Exception( 'No ZFS datasets available. Please create a dataset before configuring the FTP service.') if request.method == 'GET': initial = {} if config: for key in config.keys(): initial[key] = config[key] form = ftp_management_forms.ConfigureFTPForm( datasets=ds_list, cert_names=cert_name_list, initial=initial) return_dict['form'] = form return django.shortcuts.render_to_response('update_ftp_configuration.html', return_dict, context_instance=django.template.context.RequestContext(request)) else: form = ftp_management_forms.ConfigureFTPForm( request.POST, cert_names=cert_name_list, datasets=ds_list) return_dict['form'] = form if not form.is_valid(): return django.shortcuts.render_to_response("update_ftp_configuration.html", return_dict, context_instance=django.template.context.RequestContext(request)) cd = form.cleaned_data ret, err = vsftp.update_ftp_config(cd) if err: raise Exception(err) users, err = local_users.get_local_users() if err: raise Exception(err) ret, err = vsftp.create_ftp_user_dirs(cd['dataset'], users) if err: raise Exception(err) audit_str = 'Updated FTP configuration.' if cd['ssl_enabled']: audit_str = audit_str + \ ' SSL enabled with certificate %s' % cd['cert_name'] else: audit_str = audit_str + ' SSL disabled.' ret, err = audit.audit("update_ftp_config", audit_str, request) return django.http.HttpResponseRedirect('/view_ftp_configuration?ack=saved') except Exception, e: return_dict['base_template'] = "services_base.html" return_dict["page_title"] = 'Configure FTP service' return_dict['tab'] = 'ftp_service_settings' return_dict["error"] = 'Error configuring the FTP service ' return_dict["error_details"] = str(e) return django.shortcuts.render_to_response("logged_in_error.html", return_dict, context_instance=django.template.context.RequestContext(request))
def update_ftp_configuration(request): return_dict = {} try: config, err = vsftp.get_ftp_config() if err: raise Exception(err) pools, err = zfs.get_pools() ds_list = [] for pool in pools: for ds in pool["datasets"]: if ds['properties']['type']['value'] == 'filesystem': ds_list.append(ds["name"]) cert_list, err = pki.get_ssl_certificates() if err: raise Exception(err) cert_name_list = [] for cert in cert_list: cert_name_list.append(cert['name']) # print ds_list if not ds_list: raise Exception( 'No ZFS datasets available. Please create a dataset before configuring the FTP service.') if request.method == 'GET': initial = {} if config: for key in config.keys(): initial[key] = config[key] form = ftp_management_forms.ConfigureFTPForm( datasets=ds_list, cert_names=cert_name_list, initial=initial) return_dict['form'] = form return django.shortcuts.render_to_response('update_ftp_configuration.html', return_dict, context_instance=django.template.context.RequestContext(request)) else: form = ftp_management_forms.ConfigureFTPForm( request.POST, cert_names=cert_name_list, datasets=ds_list) return_dict['form'] = form if not form.is_valid(): return django.shortcuts.render_to_response("update_ftp_configuration.html", return_dict, context_instance=django.template.context.RequestContext(request)) cd = form.cleaned_data ret, err = vsftp.update_ftp_config(cd) if err: raise Exception(err) users, err = local_users.get_local_users() if err: raise Exception(err) ret, err = vsftp.create_ftp_user_dirs(cd['dataset'], users) if err: raise Exception(err) audit_str = 'Updated FTP configuration.' if cd['ssl_enabled']: audit_str = audit_str + \ ' SSL enabled with certificate %s' % cd['cert_name'] else: audit_str = audit_str + ' SSL disabled.' ret, err = audit.audit("update_ftp_config", audit_str, request) return django.http.HttpResponseRedirect('/storage_access/view_ftp_configuration?ack=saved') except Exception, e: return_dict['base_template'] = "storage_access_base.html" return_dict["page_title"] = 'Configure FTP service' return_dict['tab'] = 'ftp_service_settings' return_dict["error"] = 'Error configuring the FTP service ' return_dict["error_details"] = str(e) return django.shortcuts.render_to_response("logged_in_error.html", return_dict, context_instance=django.template.context.RequestContext(request))
def update_https_mode(request): return_dict = {} try: ret, err = django_utils.get_request_parameter_values( request, ['change_to']) if err: raise Exception(err) if 'change_to' not in ret: raise Exception("Invalid request, please use the menus.") change_to = ret['change_to'] return_dict['change_to'] = change_to cert_list, err = pki.get_ssl_certificates() if err: raise Exception(err) if not cert_list: raise Exception( 'No certificates have been created. Please create a certificate/key pair before you change the access method' ) if request.method == "GET": if change_to == 'secure': form = keys_certs_forms.SetHttpsModeForm(cert_list=cert_list) return_dict['form'] = form return django.shortcuts.render_to_response( "update_https_mode.html", return_dict, context_instance=django.template.context.RequestContext( request)) else: return_dict[ 'conf_message'] = 'Are you sure you want to disable the secure access mode for IntegralView?' return django.shortcuts.render_to_response( "update_http_mode_conf.html", return_dict, context_instance=django.template.context.RequestContext( request)) else: if change_to == 'secure': form = keys_certs_forms.SetHttpsModeForm(request.POST, cert_list=cert_list) return_dict['form'] = form if not form.is_valid(): return django.shortcuts.render_to_response( "update_https_mode.html", return_dict, context_instance=django.template.context. RequestContext(request)) cd = form.cleaned_data if change_to == 'secure': pki_dir, err = config.get_pki_dir() if err: raise Exception(err) cert_loc = '%s/%s/%s.cert' % (pki_dir, cd['cert_name'], cd['cert_name']) if not os.path.exists(cert_loc): raise Exception('Error locating certificate') ret, err = nginx.generate_nginx_conf(True, cert_loc, cert_loc) if err: raise Exception(err) else: ret, err = nginx.generate_nginx_conf(False) if err: raise Exception(err) audit_str = "Changed the IntegralView access mode to '%s'" % change_to audit.audit("set_https_mode", audit_str, request) redirect_url = "https://" if change_to == "secure" else "http://" redirect_url = redirect_url + \ request.META["HTTP_HOST"] + \ "/system/view_https_mode?ack=set_to_%s" % change_to restart, err = tasks_utils.create_task( 'Chaging IntegralView access mode', [{ 'Restarting Web Server': 'service nginx restart' }], 2) if err: raise Exception(err) return django.http.HttpResponseRedirect(redirect_url) except Exception, e: return_dict['base_template'] = "system_base.html" return_dict["page_title"] = 'Modify Integralview access mode' return_dict['tab'] = 'system_info_tab' return_dict["error"] = 'Error modifying IntegralView access mode' return_dict["error_details"] = str(e) return django.shortcuts.render_to_response( "logged_in_error.html", return_dict, context_instance=django.template.context.RequestContext(request))
def update_https_mode(request): return_dict = {} try: ret, err = django_utils.get_request_parameter_values(request, [ 'change_to']) if err: raise Exception(err) if 'change_to' not in ret: raise Exception("Invalid request, please use the menus.") change_to = ret['change_to'] return_dict['change_to'] = change_to cert_list, err = pki.get_ssl_certificates() if err: raise Exception(err) if not cert_list: raise Exception( 'No certificates have been created. Please create a certificate/key pair before you change the access method') if request.method == "GET": if change_to == 'secure': form = keys_certs_forms.SetHttpsModeForm(cert_list=cert_list) return_dict['form'] = form return django.shortcuts.render_to_response("update_https_mode.html", return_dict, context_instance=django.template.context.RequestContext(request)) else: return_dict['conf_message'] = 'Are you sure you want to disable the secure access mode for IntegralView?' return django.shortcuts.render_to_response("update_http_mode_conf.html", return_dict, context_instance=django.template.context.RequestContext(request)) else: if change_to == 'secure': form = keys_certs_forms.SetHttpsModeForm( request.POST, cert_list=cert_list) return_dict['form'] = form if not form.is_valid(): return django.shortcuts.render_to_response("update_https_mode.html", return_dict, context_instance=django.template.context.RequestContext(request)) cd = form.cleaned_data if change_to == 'secure': pki_dir, err = config.get_pki_dir() if err: raise Exception(err) cert_loc = '%s/%s/%s.cert' % (pki_dir, cd['cert_name'], cd['cert_name']) if not os.path.exists(cert_loc): raise Exception('Error locating certificate') ret, err = nginx.generate_nginx_conf(True, cert_loc, cert_loc) if err: raise Exception(err) else: ret, err = nginx.generate_nginx_conf(False) if err: raise Exception(err) audit_str = "Changed the IntegralView access mode to '%s'" % change_to audit.audit("set_https_mode", audit_str, request) redirect_url = "https://" if change_to == "secure" else "http://" redirect_url = redirect_url + \ request.META["HTTP_HOST"] + \ "/system/view_https_mode?ack=set_to_%s" % change_to restart, err = tasks_utils.create_task('Chaging IntegralView access mode', [ {'Restarting Web Server': 'service nginx restart'}], 2) if err: raise Exception(err) return django.http.HttpResponseRedirect(redirect_url) except Exception, e: return_dict['base_template'] = "system_base.html" return_dict["page_title"] = 'Modify Integralview access mode' return_dict['tab'] = 'system_info_tab' return_dict["error"] = 'Error modifying IntegralView access mode' return_dict["error_details"] = str(e) return django.shortcuts.render_to_response("logged_in_error.html", return_dict, context_instance=django.template.context.RequestContext(request))