コード例 #1
0
ファイル: views.py プロジェクト: tsoslow/weblate
def ssh(request, admin_site):
    """Show information and manipulate with SSH key."""
    # Check whether we can generate SSH key
    can_generate = can_generate_key()

    # Grab action type
    action = request.POST.get('action')

    # Generate key if it does not exist yet
    if can_generate and action == 'generate':
        generate_ssh_key(request)

    # Read key data if it exists
    key = get_key_data()

    # Add host key
    if action == 'add-host':
        add_host_key(request, request.POST.get('host', ''),
                     request.POST.get('port', ''))

    context = admin_site.each_context(request)
    context['public_key'] = key
    context['can_generate'] = can_generate
    context['host_keys'] = get_host_keys()

    return render(
        request,
        "admin/ssh.html",
        context,
    )
コード例 #2
0
ファイル: views.py プロジェクト: mashanz/weblate
def ssh(request):
    """Show information and manipulate with SSH key."""
    # Check whether we can generate SSH key
    can_generate = can_generate_key()

    # Grab action type
    action = request.POST.get("action")

    # Generate key if it does not exist yet
    if can_generate and action == "generate":
        generate_ssh_key(request)

    # Read key data if it exists
    key = get_key_data()

    # Add host key
    form = SSHAddForm()
    if action == "add-host":
        form = SSHAddForm(request.POST)
        if form.is_valid():
            add_host_key(request, **form.cleaned_data)

    context = {
        "public_key": key,
        "can_generate": can_generate,
        "host_keys": get_host_keys(),
        "menu_items": MENU,
        "menu_page": "ssh",
        "add_form": form,
    }

    return render(request, "manage/ssh.html", context)
コード例 #3
0
ファイル: views.py プロジェクト: dekoza/weblate
def ssh(request, admin_site):
    """Show information and manipulate with SSH key."""
    # Check whether we can generate SSH key
    can_generate = can_generate_key()

    # Grab action type
    action = request.POST.get('action')

    # Generate key if it does not exist yet
    if can_generate and action == 'generate':
        generate_ssh_key(request)

    # Read key data if it exists
    key = get_key_data()

    # Add host key
    if action == 'add-host':
        add_host_key(request)

    context = admin_site.each_context(request)
    context['public_key'] = key
    context['can_generate'] = can_generate
    context['host_keys'] = get_host_keys()

    return render(
        request,
        "admin/ssh.html",
        context,
    )
コード例 #4
0
def ssh(request):
    """Show information and manipulate with SSH key."""
    # Check whether we can generate SSH key
    can_generate = can_generate_key()

    # Grab action type
    action = request.POST.get('action')

    # Generate key if it does not exist yet
    if can_generate and action == 'generate':
        generate_ssh_key(request)

    # Read key data if it exists
    key = get_key_data()

    # Add host key
    form = SSHAddForm()
    if action == 'add-host':
        form = SSHAddForm(request.POST)
        if form.is_valid():
            add_host_key(request, **form.cleaned_data)

    context = {
        'public_key': key,
        'can_generate': can_generate,
        'host_keys': get_host_keys(),
        'menu_items': MENU,
        'menu_page': 'ssh',
        'add_form': form,
    }

    return render(request, "manage/ssh.html", context)
コード例 #5
0
 def refresh(self):
     stats = GlobalStats()
     data = {
         "secret": self.secret,
         "site_url": get_site_url(),
         "site_title": settings.SITE_TITLE,
         "users": User.objects.count(),
         "projects": Project.objects.count(),
         "components": Component.objects.count(),
         "languages": stats.languages,
         "source_strings": stats.source_strings,
     }
     ssh_key = get_key_data()
     if not ssh_key:
         generate_ssh_key(None)
         ssh_key = get_key_data()
     if ssh_key:
         data["ssh_key"] = ssh_key["key"]
     response = request("post", settings.SUPPORT_API_URL, data=data)
     response.raise_for_status()
     payload = response.json()
     self.name = payload["name"]
     self.expiry = dateutil.parser.parse(payload["expiry"])
     self.in_limits = payload["in_limits"]
     if payload["backup_repository"]:
         BackupService.objects.get_or_create(
             repository=payload["backup_repository"],
             defaults={"enabled": False})
コード例 #6
0
ファイル: models.py プロジェクト: mleneveut/weblate
 def refresh(self):
     stats = GlobalStats()
     data = {
         'secret': self.secret,
         'site_url': get_site_url(),
         'site_title': settings.SITE_TITLE,
         'users': User.objects.count(),
         'projects': Project.objects.count(),
         'components': Component.objects.count(),
         'languages': stats.languages,
         'source_strings': stats.source_strings,
     }
     ssh_key = get_key_data()
     if not ssh_key:
         generate_ssh_key(None)
         ssh_key = get_key_data()
     if ssh_key:
         data['ssh_key'] = ssh_key['key']
     headers = {'User-Agent': USER_AGENT}
     response = requests.request('post',
                                 settings.SUPPORT_API_URL,
                                 headers=headers,
                                 data=data)
     response.raise_for_status()
     payload = response.json()
     self.name = payload['name']
     self.expiry = dateutil.parser.parse(payload['expiry'])
     self.in_limits = payload['in_limits']
     if payload['backup_repository']:
         BackupService.objects.get_or_create(
             repository=payload['backup_repository'],
             defaults={"enabled": False})
コード例 #7
0
 def refresh(self):
     stats = GlobalStats()
     data = {
         "secret": self.secret,
         "site_url": get_site_url(),
         "site_title": settings.SITE_TITLE,
         "users": User.objects.count(),
         "projects": Project.objects.count(),
         "components": Component.objects.count(),
         "languages": stats.languages,
         "source_strings": stats.source_strings,
         "strings": stats.all,
         "words": stats.all_words,
     }
     if self.discoverable:
         data["discoverable"] = 1
         data["public_projects"] = json.dumps(
             [
                 {
                     "name": project.name,
                     "url": project.get_absolute_url(),
                     "web": project.web,
                 }
                 for project in Project.objects.filter(
                     access_control=Project.ACCESS_PUBLIC
                 ).iterator()
             ]
         )
     ssh_key = get_key_data()
     if not ssh_key:
         generate_ssh_key(None)
         ssh_key = get_key_data()
     if ssh_key:
         data["ssh_key"] = ssh_key["key"]
     response = request("post", settings.SUPPORT_API_URL, data=data)
     response.raise_for_status()
     payload = response.json()
     self.name = payload["name"]
     self.expiry = dateutil.parser.parse(payload["expiry"])
     self.in_limits = payload["in_limits"]
     if payload["backup_repository"]:
         BackupService.objects.get_or_create(
             repository=payload["backup_repository"], defaults={"enabled": False}
         )