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))
Пример #3
0
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))
Пример #5
0
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))