Ejemplo n.º 1
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})
Ejemplo n.º 2
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']
     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})
Ejemplo n.º 3
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)
Ejemplo n.º 4
0
    def test_ssh(self):
        """Test SSH admin interface."""
        self.open_admin()

        self.screenshot('admin.png')

        # Open SSH page
        with self.wait_for_page_load():
            self.click('SSH keys')

        # Generate SSH key
        if get_key_data() is None:
            with self.wait_for_page_load():
                self.click(
                    self.driver.find_element_by_id('generate-ssh-button'), )

        # Add SSH host key
        self.driver.find_element_by_id('ssh-host').send_keys('github.com')
        with self.wait_for_page_load():
            self.click(self.driver.find_element_by_id('ssh-add-button'), )

        self.screenshot('ssh-keys-added.png')

        # Open SSH page for final screenshot
        with self.wait_for_page_load():
            self.click('Home')
        with self.wait_for_page_load():
            self.click('SSH keys')
        self.screenshot('ssh-keys.png')
Ejemplo n.º 5
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)
Ejemplo n.º 6
0
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,
    )
Ejemplo n.º 7
0
    def test_ssh(self):
        """Test SSH admin interface."""
        self.open_admin()

        self.screenshot("admin.png")

        # Open SSH page
        with self.wait_for_page_load():
            self.click("SSH keys")

        # Generate SSH key
        if get_key_data() is None:
            with self.wait_for_page_load():
                self.click(
                    self.driver.find_element_by_id("generate-ssh-button"))

        # Add SSH host key
        self.driver.find_element_by_id("id_host").send_keys("github.com")
        with self.wait_for_page_load():
            self.click(self.driver.find_element_by_id("ssh-add-button"))

        self.screenshot("ssh-keys-added.png")

        # Open SSH page for final screenshot
        with self.wait_for_page_load():
            self.click("SSH keys")
        self.screenshot("ssh-keys.png")
Ejemplo n.º 8
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 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'])
Ejemplo n.º 9
0
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,
    )
Ejemplo n.º 10
0
def manage_access(request, project):
    """User management view."""
    obj = get_project(request, project)

    if not request.user.has_perm("project.permissions", obj):
        raise PermissionDenied()

    groups = obj.defined_groups.order()
    for group in groups:
        group.edit_form = SimpleGroupForm(instance=group,
                                          auto_id=f"id_group_{group.id}_%s")
    users = (User.objects.filter(
        groups__in=groups).distinct().order().prefetch_related(
            Prefetch(
                "groups",
                queryset=groups,
                to_attr="project_groups",
            ), ))

    for user in users:
        user.group_edit_form = ProjectUserGroupForm(
            obj,
            initial={
                "user": user.username,
                "groups": user.project_groups
            },
            auto_id=f"id_user_{user.id}_%s",
        )

    return render(
        request,
        "trans/project-access.html",
        {
            "object":
            obj,
            "project":
            obj,
            "project_tokens":
            obj.projecttoken_set.all(),
            "groups":
            groups,
            "all_users":
            users,
            "blocked_users":
            obj.userblock_set.select_related("user"),
            "add_user_form":
            UserManageForm(),
            "create_project_token_form":
            ProjectTokenCreateForm(obj),
            "create_team_form":
            SimpleGroupForm(initial={"language_selection": SELECTION_ALL}),
            "block_user_form":
            UserBlockForm(initial={"user": request.GET.get("block_user")}),
            "invite_user_form":
            InviteUserForm(),
            "ssh_key":
            get_key_data(),
        },
    )
Ejemplo n.º 11
0
 def page_context(self, context):
     context.update({
         'title': _('Weblate keys'),
         'gpg_key_id': get_gpg_sign_key(),
         'gpg_key': get_gpg_public_key(),
         'ssh_key': get_key_data(),
         'allow_index': True,
     })
Ejemplo n.º 12
0
 def page_context(self, context):
     context.update({
         'title': _('Weblate keys'),
         'gpg_key_id': get_gpg_sign_key(),
         'gpg_key': get_gpg_public_key(),
         'ssh_key': get_key_data(),
         'allow_index': True,
     })
Ejemplo n.º 13
0
 def page_context(self, context):
     context.update({
         "title": _("Weblate keys"),
         "gpg_key_id": get_gpg_sign_key(),
         "gpg_key": get_gpg_public_key(),
         "ssh_key": get_key_data(),
         "allow_index": True,
     })
Ejemplo n.º 14
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}
         )
Ejemplo n.º 15
0
def keys(request):
    """Show keys information."""
    return render(
        request, 'keys.html', {
            'title': _('Weblate keys'),
            'gpg_key_id': get_gpg_sign_key(),
            'gpg_key': get_gpg_public_key(),
            'ssh_key': get_key_data(),
            'allow_index': True,
        })
Ejemplo n.º 16
0
def manage_access(request, project):
    """User management view."""
    obj = get_project(request, project)

    if not request.user.has_perm("project.permissions", obj):
        raise PermissionDenied()

    return render(
        request,
        "manage-access.html",
        {
            "object": obj,
            "project": obj,
            "groups": Group.objects.for_project(obj),
            "all_users": User.objects.for_project(obj),
            "add_user_form": UserManageForm(),
            "invite_user_form": InviteUserForm(),
            "ssh_key": get_key_data(),
        },
    )
Ejemplo n.º 17
0
def manage_access(request, project):
    """User management view."""
    obj = get_project(request, project)

    if not request.user.has_perm("project.permissions", obj):
        raise PermissionDenied()

    return render(
        request,
        "manage-access.html",
        {
            "object": obj,
            "project": obj,
            "groups": Group.objects.for_project(obj),
            "all_users": User.objects.for_project(obj),
            "blocked_users": obj.userblock_set.select_related("user"),
            "add_user_form": UserManageForm(),
            "block_user_form": UserBlockForm(
                initial={"user": request.GET.get("block_user")}
            ),
            "invite_user_form": InviteUserForm(),
            "ssh_key": get_key_data(),
        },
    )
Ejemplo n.º 18
0
    def test_ssh(self):
        """Test SSH admin interface."""
        self.open_admin()

        self.screenshot('admin.png')

        # Open SSH page
        with self.wait_for_page_load():
            self.click('SSH keys')

        # Generate SSH key
        if get_key_data() is None:
            with self.wait_for_page_load():
                self.click(
                    self.driver.find_element_by_id('generate-ssh-button'),
                )

        # Add SSH host key
        self.driver.find_element_by_id(
            'ssh-host'
        ).send_keys(
            'github.com'
        )
        with self.wait_for_page_load():
            self.click(
                self.driver.find_element_by_id('ssh-add-button'),
            )

        self.screenshot('ssh-keys-added.png')

        # Open SSH page for final screenshot
        with self.wait_for_page_load():
            self.click('Home')
        with self.wait_for_page_load():
            self.click('SSH keys')
        self.screenshot('ssh-keys.png')