Ejemplo n.º 1
0
def update_auth_method(request):
    return_dict = {}
    try:
        d, err = cifs.get_auth_settings()
        if err:
            raise Exception(err)
        return_dict["samba_global_dict"] = d

        if request.method == "GET":
            return django.shortcuts.render_to_response('update_cifs_auth_method.html', return_dict, context_instance=django.template.context.RequestContext(request))
        else:
            # Save request
            if "auth_method" not in request.POST:
                return_dict["error"] = "Please select an authentication method"
                return django.shortcuts.render_to_response('update_cifs_auth_method.html', return_dict, context_instance=django.template.context.RequestContext(request))
            security = request.POST["auth_method"]
            if 'security' in d and security == d["security"]:
                return_dict["error"] = "Selected authentication method is the same as before."
                return django.shortcuts.render_to_response('update_cifs_auth_method.html', return_dict, context_instance=django.template.context.RequestContext(request))

            ret, err = cifs.update_auth_method(security)
            if err:
                raise Exception(err)
            ret, err = cifs.generate_smb_conf()
            if err:
                raise Exception(err)

        return django.http.HttpResponseRedirect('/storage_access/update_samba_server_settings')
    except Exception, e:
        return_dict['base_template'] = "storage_access_base.html"
        return_dict["page_title"] = 'Modify CIFS authentication method'
        return_dict['tab'] = 'auth_server_settings_tab'
        return_dict["error"] = 'Error modifying CIFS authentication method'
        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_auth_method(request):
    return_dict = {}
    try:
        d, err = cifs.get_auth_settings()
        if err:
            raise Exception(err)
        return_dict["samba_global_dict"] = d

        if request.method == "GET":
            return django.shortcuts.render_to_response('update_cifs_auth_method.html', return_dict, context_instance=django.template.context.RequestContext(request))
        else:
            # Save request
            if "auth_method" not in request.POST:
                return_dict["error"] = "Please select an authentication method"
                return django.shortcuts.render_to_response('update_cifs_auth_method.html', return_dict, context_instance=django.template.context.RequestContext(request))
            security = request.POST["auth_method"]
            if 'security' in d and security == d["security"]:
                return_dict["error"] = "Selected authentication method is the same as before."
                return django.shortcuts.render_to_response('update_cifs_auth_method.html', return_dict, context_instance=django.template.context.RequestContext(request))

            ret, err = cifs.update_auth_method(security)
            if err:
                raise Exception(err)
            ret, err = cifs.generate_smb_conf()
            if err:
                raise Exception(err)

        return django.http.HttpResponseRedirect('/storage_access/update_samba_server_settings')
    except Exception, e:
        return_dict['base_template'] = "storage_access_base.html"
        return_dict["page_title"] = 'Modify CIFS authentication method'
        return_dict['tab'] = 'auth_server_settings_tab'
        return_dict["error"] = 'Error modifying CIFS authentication method'
        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))
Ejemplo n.º 3
0
def view_samba_server_settings(request):
    return_dict = {}
    try:
        d, err = cifs.get_auth_settings()
        if err:
            raise Exception(err)

        return_dict["samba_global_dict"] = d
        ret, err = django_utils.get_request_parameter_values(request, ['ack'])
        if err:
            raise Exception(err)
        if 'ack' in ret and ret['ack'] == 'saved':
            return_dict["ack_message"] = "Information updated successfully"
        return django.shortcuts.render_to_response(
            'view_samba_server_settings.html',
            return_dict,
            context_instance=django.template.context.RequestContext(request))
    except Exception, e:
        return_dict['base_template'] = "services_base.html"
        return_dict["page_title"] = 'Modify CIFS authentication settings'
        return_dict['tab'] = 'auth_server_settings_tab'
        return_dict["error"] = 'Error modifying CIFS authentication settings'
        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_samba_server_settings(request):
    return_dict = {}
    try:
        d, err = cifs.get_auth_settings()
        if err:
            raise Exception(err)

        return_dict["samba_global_dict"] = d
        ret, err = django_utils.get_request_parameter_values(request, ['ack'])
        if err:
            raise Exception(err)
        if 'ack' in ret and ret['ack'] == 'saved':
            return_dict["ack_message"] = "Information updated successfully"
        return django.shortcuts.render_to_response('view_samba_server_settings.html', return_dict, context_instance=django.template.context.RequestContext(request))
    except Exception, e:
        return_dict['base_template'] = "storage_access_base.html"
        return_dict["page_title"] = 'Modify CIFS authentication settings'
        return_dict['tab'] = 'auth_server_settings_tab'
        return_dict["error"] = 'Error modifying CIFS authentication settings'
        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))
Ejemplo n.º 5
0
def update_samba_server_settings(request):

    return_dict = {}
    try:
        if request.method == "GET":
            d, err = cifs.get_auth_settings()
            if err:
                raise Exception(err)
            ini = {}
            if d:
                for k in d.keys():
                    if d[k]:
                        ini[k] = d[k]
            else:
                ini['security'] = 'users'
            if d and d["security"] == "ads":
                form = samba_shares_forms.AuthADSettingsForm(initial=ini)
            else:
                form = samba_shares_forms.AuthUsersSettingsForm(initial=ini)
            print 'c'
            return_dict["form"] = form
            return django.shortcuts.render_to_response('update_samba_server_settings.html', return_dict, context_instance=django.template.context.RequestContext(request))
        else:
            if "security" not in request.POST:
                raise Exception(
                    "Invalid security specification. Please try again using the menus")

            if request.POST["security"] == "ads":
                form = samba_shares_forms.AuthADSettingsForm(request.POST)
            elif request.POST["security"] == "users":
                form = samba_shares_forms.AuthUsersSettingsForm(request.POST)
            else:
                raise Exception(
                    "Invalid security specification. Please try again using the menus")

            return_dict["form"] = form
            return_dict["ack"] = "edit"

            if form.is_valid():
                cd = form.cleaned_data
                # print "Calling auth save settings"
                ret, err = cifs.update_auth_settings(cd)
                print "save settings done"
                if err:
                    raise Exception(err)
                if cd["security"] == "ads":
                    ret, err = cifs.generate_krb5_conf()
                    if err:
                        raise Exception(err)
                ret, err = cifs.generate_smb_conf()
                if err:
                    raise Exception(err)
                if cd["security"] == "ads":
                    rc, err = cifs.kinit(
                        cd["username"], cd["password"], cd["realm"])
                    if err:
                        if "Password incorrect" in err:
                            raise Exception("Invalid Credentials, Please try again")
                        elif "not found" in err:
                            raise Exception("Could not find an Active Directory user with the username: '******'! " % cd["username"])
                        elif cd["password"] in err:
                            raise Exception(err.split('echo')[0])
                        else:
                            raise Exception(err)
                    rc, err = cifs.net_ads_join(
                       cd["username"], cd["password"], cd["password_server"])
                    if err:

                        if cd["password"] in err:
                            raise Exception(err.split('net')[0])
                        else:
                            raise Exception(err)
                ret, err = cifs.reload_configuration(action='restart')
                if err:
                    raise Exception(err)
            else:
                return django.shortcuts.render_to_response('update_samba_server_settings.html', return_dict, context_instance=django.template.context.RequestContext(request))

            audit_str = "Modified share authentication settings"
            audit.audit("modify_samba_settings", audit_str, request)
            return django.http.HttpResponseRedirect('/storage_access/view_samba_server_settings?ack=saved')
        # return django.shortcuts.render_to_response('logged_in_error.html',
        # return_dict,
        # context_instance=django.template.context.RequestContext(request))
    except Exception, e:
        return_dict['base_template'] = "storage_access_base.html"
        return_dict["page_title"] = 'Modify CIFS authentication settings'
        return_dict['tab'] = 'auth_server_settings_tab'
        return_dict["error"] = 'Error modifying CIFS authentication settings'
        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_samba_server_settings(request):

    return_dict = {}
    try:
        if request.method == "GET":
            d, err = cifs.get_auth_settings()
            if err:
                raise Exception(err)
            ini = {}
            if d:
                for k in d.keys():
                    if d[k]:
                        ini[k] = d[k]
            else:
                ini['security'] = 'users'
            if d and d["security"] == "ads":
                form = samba_shares_forms.AuthADSettingsForm(initial=ini)
            else:
                form = samba_shares_forms.AuthUsersSettingsForm(initial=ini)
            print 'c'
            return_dict["form"] = form
            return django.shortcuts.render_to_response('update_samba_server_settings.html', return_dict, context_instance=django.template.context.RequestContext(request))
        else:
            if "security" not in request.POST:
                raise Exception(
                    "Invalid security specification. Please try again using the menus")

            if request.POST["security"] == "ads":
                form = samba_shares_forms.AuthADSettingsForm(request.POST)
            elif request.POST["security"] == "users":
                form = samba_shares_forms.AuthUsersSettingsForm(request.POST)
            else:
                raise Exception(
                    "Invalid security specification. Please try again using the menus")

            return_dict["form"] = form
            return_dict["ack"] = "edit"

            if form.is_valid():
                cd = form.cleaned_data
                # print "Calling auth save settings"
                ret, err = cifs.update_auth_settings(cd)
                print "save settings done"
                if err:
                    raise Exception(err)
                if cd["security"] == "ads":
                    ret, err = cifs.generate_krb5_conf()
                    if err:
                        raise Exception(err)
                ret, err = cifs.generate_smb_conf()
                if err:
                    raise Exception(err)
                if cd["security"] == "ads":
                    rc, err = cifs.kinit(
                        "administrator", cd["password"], cd["realm"])
                    if err:
                        raise Exception(err)
                    rc, err = cifs.net_ads_join(
                        "administrator", cd["password"], cd["password_server"])
                    if err:
                        raise Exception(err)
                ret, err = cifs.reload_configuration()
                if err:
                    raise Exception(err)
            else:
                return django.shortcuts.render_to_response('update_samba_server_settings.html', return_dict, context_instance=django.template.context.RequestContext(request))

            audit_str = "Modified share authentication settings"
            audit.audit("modify_samba_settings", audit_str, request)
            return django.http.HttpResponseRedirect('/storage_access/view_samba_server_settings?ack=saved')
        # return django.shortcuts.render_to_response('logged_in_error.html',
        # return_dict,
        # context_instance=django.template.context.RequestContext(request))
    except Exception, e:
        return_dict['base_template'] = "storage_access_base.html"
        return_dict["page_title"] = 'Modify CIFS authentication settings'
        return_dict['tab'] = 'auth_server_settings_tab'
        return_dict["error"] = 'Error modifying CIFS authentication settings'
        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))