Exemplo n.º 1
0
def check_user_form(request, project):
    obj = get_project(request, project)

    if not can_manage_acl(request.user, obj):
        raise PermissionDenied()

    form = UserManageForm(request.POST)

    if form.is_valid():
        return obj, form
    else:
        for error in form.errors:
            for message in form.errors[error]:
                messages.error(request, message)
        return obj, None
Exemplo n.º 2
0
def check_user_form(request, project):
    obj = get_project(request, project)

    if not can_manage_acl(request.user, obj):
        raise PermissionDenied()

    form = UserManageForm(request.POST)

    if form.is_valid():
        return obj, form
    else:
        for error in form.errors:
            for message in form.errors[error]:
                messages.error(request, message)
        return obj, None
Exemplo n.º 3
0
def show_project(request, project):
    obj = get_project(request, project)

    dict_langs = Dictionary.objects.filter(project=obj).values_list(
        'language', flat=True).distinct()

    dicts = []
    for language in Language.objects.filter(id__in=dict_langs):
        dicts.append({
            'language':
            language,
            'count':
            Dictionary.objects.filter(language=language, project=obj).count(),
        })

    last_changes = Change.objects.prefetch().filter(
        Q(translation__subproject__project=obj)
        | Q(dictionary__project=obj))[:10]

    return render(
        request, 'project.html', {
            'object': obj,
            'project': obj,
            'dicts': dicts,
            'last_changes': last_changes,
            'last_changes_url': urlencode({'project': obj.slug}),
            'add_user_form': UserManageForm(),
        })
Exemplo n.º 4
0
Arquivo: acl.py Projeto: dakur/weblate
def manage_access(request, project):
    """User management view."""
    obj = get_project(request, project)

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

    if request.user.has_perm('billing:project.permissions', obj):
        access_form = ProjectAccessForm(instance=obj)
    else:
        access_form = DisabledProjectAccessForm(instance=obj)

    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(),
            'access_form': access_form,
        },
    )
Exemplo n.º 5
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(),
        },
    )
Exemplo n.º 6
0
def show_project(request, project):
    obj = get_project(request, project)

    dict_langs = Language.objects.filter(dictionary__project=obj).annotate(
        Count('dictionary'))

    if request.method == 'POST' and can_edit_project(request.user, obj):
        settings_form = ProjectSettingsForm(request.POST, instance=obj)
        if settings_form.is_valid():
            settings_form.save()
            messages.success(request, _('Settings saved'))
            return redirect(obj)
        else:
            messages.error(
                request,
                _('Invalid settings, please check the form for errors!'))
    else:
        settings_form = ProjectSettingsForm(instance=obj)

    last_changes = Change.objects.for_project(obj)[:10]

    language_stats = sort_unicode(get_per_language_stats(obj),
                                  lambda tup: force_text(tup[0]))

    language_stats = [(tup[0], translation_percent(tup[1], tup[2]),
                       translation_percent(tup[3], tup[4]))
                      for tup in language_stats]

    return render(
        request, 'project.html', {
            'object':
            obj,
            'project':
            obj,
            'dicts':
            dict_langs,
            'last_changes':
            last_changes,
            'last_changes_url':
            urlencode({'project': obj.slug}),
            'add_user_form':
            UserManageForm(),
            'settings_form':
            settings_form,
            'language_stats':
            language_stats,
            'unit_count':
            Unit.objects.filter(translation__subproject__project=obj).count(),
            'words_count':
            obj.get_total_words(),
            'language_count':
            Language.objects.filter(
                translation__subproject__project=obj).distinct().count(),
            'strings_count':
            obj.get_total(),
            'source_words_count':
            obj.get_source_words(),
        })
Exemplo n.º 7
0
def check_user_form(request, project, verbose=False):
    """Check project permission and UserManageForm.

    This is simple helper to perform needed validation for all
    user management views.
    """
    obj = get_project(request, project)

    if not can_manage_acl(request.user, obj):
        raise PermissionDenied()

    form = UserManageForm(request.POST)

    if form.is_valid():
        return obj, form
    elif verbose:
        for error in form.errors:
            for message in form.errors[error]:
                messages.error(request, message)
    return obj, None
Exemplo n.º 8
0
Arquivo: acl.py Projeto: saily/weblate
def check_user_form(request, project, verbose=False):
    """Check project permission and UserManageForm.

    This is simple helper to perform needed validation for all
    user management views.
    """
    obj = get_project(request, project)

    if not can_manage_acl(request.user, obj):
        raise PermissionDenied()

    form = UserManageForm(request.POST)

    if form.is_valid():
        return obj, form
    elif verbose:
        for error in form.errors:
            for message in form.errors[error]:
                messages.error(request, message)
    return obj, None
Exemplo n.º 9
0
Arquivo: acl.py Projeto: sr258/weblate
def check_user_form(request, project, verbose=False):
    """Check project permission and UserManageForm.

    This is simple helper to perform needed validation for all
    user management views.
    """
    obj = get_project(request, project)

    if (not request.user.has_perm('project.permissions', obj)
            or obj.access_control == obj.ACCESS_CUSTOM):
        raise PermissionDenied()

    form = UserManageForm(request.POST)

    if form.is_valid():
        return obj, form
    if verbose:
        for error in form.errors:
            for message in form.errors[error]:
                messages.error(request, message)
    return obj, None
Exemplo n.º 10
0
def check_user_form(request, project, verbose=False):
    """Check project permission and UserManageForm.

    This is simple helper to perform needed validation for all
    user management views.
    """
    obj = get_project(request, project)

    if (not request.user.has_perm('project.permissions', obj) or
            obj.access_control == obj.ACCESS_CUSTOM):
        raise PermissionDenied()

    form = UserManageForm(request.POST)

    if form.is_valid():
        return obj, form
    elif verbose:
        for error in form.errors:
            for message in form.errors[error]:
                messages.error(request, message)
    return obj, None
Exemplo n.º 11
0
def manage_access(request, project):
    """User management view."""
    obj = get_project(request, project)

    if not can_manage_acl(request.user, obj):
        raise PermissionDenied()

    return render(
        request, 'manage-access.html', {
            'object': obj,
            'project': obj,
            'groups': obj.all_groups(),
            'add_user_form': UserManageForm(),
        })
Exemplo n.º 12
0
def show_project(request, project):
    obj = get_project(request, project)

    dict_langs = Dictionary.objects.filter(project=obj).values_list(
        'language', flat=True).distinct()

    if request.method == 'POST' and can_edit_project(request.user, obj):
        settings_form = ProjectSettingsForm(request.POST, instance=obj)
        if settings_form.is_valid():
            settings_form.save()
            messages.success(request, _('Settings saved'))
            return redirect(obj)
        else:
            messages.error(
                request,
                _('Invalid settings, please check the form for errors!'))
    else:
        settings_form = ProjectSettingsForm(instance=obj)

    dicts = []
    for language in Language.objects.filter(id__in=dict_langs):
        dicts.append({
            'language':
            language,
            'count':
            Dictionary.objects.filter(language=language, project=obj).count(),
        })

    last_changes = Change.objects.prefetch().filter(
        Q(translation__subproject__project=obj)
        | Q(dictionary__project=obj))[:10]

    language_stats = sort_unicode(get_per_language_stats(obj),
                                  lambda tup: force_text(tup[0]))

    language_stats = [(tup[0], translation_percent(tup[1], tup[2]))
                      for tup in language_stats]

    return render(
        request, 'project.html', {
            'object': obj,
            'project': obj,
            'dicts': dicts,
            'last_changes': last_changes,
            'last_changes_url': urlencode({'project': obj.slug}),
            'add_user_form': UserManageForm(),
            'settings_form': settings_form,
            'language_stats': language_stats,
        })
Exemplo n.º 13
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(),
        },
    )
Exemplo n.º 14
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(),
        },
    )
Exemplo n.º 15
0
def manage_access(request, project):
    """User management view."""
    obj = get_project(request, project)

    if not can_manage_acl(request.user, obj):
        raise PermissionDenied()

    if can_edit_access_control(request.user, obj):
        access_form = ProjectAccessForm(instance=obj)
    else:
        access_form = DisabledProjectAccessForm(instance=obj)

    return render(
        request, 'manage-access.html', {
            'object': obj,
            'project': obj,
            'groups': obj.all_groups(),
            'add_user_form': UserManageForm(),
            'access_form': access_form,
        })
Exemplo 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),
            "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(),
        },
    )