def edit_auth_method(request): return_dict = {} try: d, err = cifs_common.load_auth_settings() if err: raise Exception(err) return_dict["samba_global_dict"] = d if request.method == "GET": return django.shortcuts.render_to_response('edit_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('edit_auth_method.html', return_dict, context_instance=django.template.context.RequestContext(request)) security = request.POST["auth_method"] if security == d["security"]: return_dict["error"] = "Selected authentication method is the same as before." return django.shortcuts.render_to_response('edit_auth_method.html', return_dict, context_instance=django.template.context.RequestContext(request)) ret, err = cifs_common.change_auth_method(security) if err: raise Exception(err) ret, err = cifs_unicell.generate_smb_conf() if err: raise Exception(err) return django.http.HttpResponseRedirect('/auth_server_settings?ack=edit') except Exception, e: return_dict['base_template'] = "services_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 edit_auth_method(request): return_dict = {} try: d, err = cifs_common.load_auth_settings() if err: raise Exception(err) return_dict["samba_global_dict"] = d if request.method == "GET": return django.shortcuts.render_to_response('edit_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('edit_auth_method.html', return_dict, context_instance=django.template.context.RequestContext(request)) security = request.POST["auth_method"] if security == d["security"]: return_dict["error"] = "Selected authentication method is the same as before." return django.shortcuts.render_to_response('edit_auth_method.html', return_dict, context_instance=django.template.context.RequestContext(request)) ret, err = cifs_common.change_auth_method(security) if err: raise Exception(err) ret, err = cifs_unicell.generate_smb_conf() if err: raise Exception(err) return django.http.HttpResponseRedirect('/auth_server_settings?action=edit') except Exception, e: return_dict['base_template'] = "services_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 generate_smb_conf(): try: d, err = cifs_common.load_auth_settings() if err: raise Exception(err) smb_conf_path, err = common.get_smb_conf_path() if err: raise Exception(err) with open("%s/smb.conf"%smb_conf_path, "w+") as f: ret, err = cifs_common.generate_global_header(f) if err: raise Exception(err) ret, err = _generate_unicell_specific_global_section(f) if err: raise Exception(err) ret, err = cifs_common.generate_common_global_section(f, d) if err: raise Exception(err) shl, err = cifs_common.load_shares_list() if err: raise Exception(err) if shl: for share in shl: ul = [] gl = [] if not share["guest_ok"]: vul, err = cifs_common.load_valid_users_list(share["share_id"]) if err: raise Exception(err) if vul: for vu in vul: if vu["grp"]: gl.append(vu["name"]) else: ul.append(vu["name"]) ret, err = _generate_share_section(f, share["name"], d["workgroup"], share["path"], share["read_only"], share["browseable"], share["guest_ok"], ul, gl, share["comment"], d["security"]) if err: raise Exception(err) ret, errors = _reload_config() if errors: raise Exception(errors) except Exception, e: return False, 'Error generating CIFS configuration : %s'%str(e)
def samba_server_settings(request): return_dict = {} #print 'a1' try: d, err = cifs_common.load_auth_settings() if err: raise Exception(err) if "action" in request.REQUEST and request.REQUEST["action"] == "edit": ini = {} if d: for k in d.keys(): if d[k]: ini[k] = d[k] if d and d["security"] == "ads": form = samba_shares_forms.AuthADSettingsForm(initial=ini) #elif d["security"] == "users": else: #print 'c' form = samba_shares_forms.AuthUsersSettingsForm(initial=ini) #print 'd' return_dict["form"] = form return django.shortcuts.render_to_response('edit_samba_server_settings.html', return_dict, context_instance=django.template.context.RequestContext(request)) # Else a view request return_dict["samba_global_dict"] = d #print 'a2' if "ack" in request.REQUEST and request.REQUEST["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 _get_user_or_group_list(type): ret = None try: d, err = cifs_common.load_auth_settings() if err: raise Exception(err) if not d: raise Exception("Unspecified authentication method. Could not retrieve users") elif d["security"] == "users": if type and type == "users": l, err = local_users.get_local_users() if err: raise Exception(err) if l: ret = [] for ld in l: ret.append(ld["username"]) else: l, err = local_users.get_local_groups() if err: raise Exception(err) if l: ret = [] for ld in l: ret.append(ld["grpname"]) elif d["security"] == "ads": if type and type == "users": ret, err = cifs_common._get_ad_users_or_groups("users") if err: raise Exception(err) elif type and type == "groups": ret, err = cifs_common._get_ad_users_or_groups("groups") if err: raise Exception(err) else: raise Exception("Unsupported authentication method. Could not retrieve users") except Exception, e: return None, 'Error retrieving user of group list : %s'%str(e)
def samba_server_settings(request): return_dict = {} #print 'a1' try: d, err = cifs_common.load_auth_settings() if err: raise Exception(err) if "action" in request.REQUEST and request.REQUEST["action"] == "edit": ini = {} if d: for k in d.keys(): ini[k] = d[k] if d and d["security"] == "ads": form = samba_shares_forms.AuthADSettingsForm(initial=ini) #elif d["security"] == "users": else: #print 'c' form = samba_shares_forms.AuthUsersSettingsForm(initial=ini) #print 'd' return_dict["form"] = form return django.shortcuts.render_to_response('edit_samba_server_settings.html', return_dict, context_instance=django.template.context.RequestContext(request)) # Else a view request return_dict["samba_global_dict"] = d #print 'a2' if "action" in request.REQUEST and request.REQUEST["action"] == "saved": return_dict["conf"] = "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))