Esempio n. 1
0
def check_suggestion_permissions(request, mode, translation):
    """
    Checks permission for suggestion handling.
    """
    if mode in ('accept', 'accept_edit'):
        if not can_accept_suggestion(request.user, translation):
            messages.error(
                request,
                _('You do not have privilege to accept suggestions!')
            )
            return False
    elif mode == 'delete':
        if not can_delete_suggestion(request.user, translation):
            messages.error(
                request,
                _('You do not have privilege to delete suggestions!')
            )
            return False
    elif mode in ('upvode', 'downvote'):
        if not can_vote_suggestion(request.user, translation):
            messages.error(
                request,
                _('You do not have privilege to vote for suggestions!')
            )
            return False
    return True
Esempio n. 2
0
def check_suggestion_permissions(request, mode, translation):
    """
    Checks permission for suggestion handling.
    """
    if mode in ('accept', 'accept_edit'):
        if not can_accept_suggestion(request.user, translation):
            messages.error(
                request,
                _('You do not have privilege to accept suggestions!')
            )
            return False
    elif mode == 'delete':
        if not can_delete_suggestion(request.user, translation):
            messages.error(
                request,
                _('You do not have privilege to delete suggestions!')
            )
            return False
    elif mode in ('upvode', 'downvote'):
        if not can_vote_suggestion(request.user, translation):
            messages.error(
                request,
                _('You do not have privilege to vote for suggestions!')
            )
            return False
    return True
Esempio n. 3
0
    def add(self, unit, target, request):
        '''
        Creates new suggestion for this unit.
        '''

        if not request.user.is_authenticated():
            user = None
        else:
            user = request.user

        # Create the suggestion
        suggestion = self.create(target=target,
                                 contentsum=unit.contentsum,
                                 language=unit.translation.language,
                                 project=unit.translation.subproject.project,
                                 user=user)

        # Record in change
        Change.objects.create(unit=unit,
                              action=Change.ACTION_SUGGESTION,
                              translation=unit.translation,
                              user=user,
                              author=user)

        # Add unit vote
        if can_vote_suggestion(user, unit.translation):
            suggestion.add_vote(unit.translation, request, True)

        # Notify subscribed users
        notify_new_suggestion(unit, suggestion, user)

        # Update suggestion stats
        if user is not None:
            user.profile.suggested += 1
            user.profile.save()
Esempio n. 4
0
def check_suggestion_permissions(request, mode, translation):
    """
    Checks permission for suggestion handling.
    """
    if (translation.is_template() and not
            request.user.has_perm('trans.save_template')):
        # Need privilege to save
        messages.error(
            request,
            _('You don\'t have privileges to save templates!')
        )
        return False
    if mode in ('accept', 'accept_edit'):
        if not can_accept_suggestion(request.user, translation):
            messages.error(
                request,
                _('You do not have privilege to accept suggestions!')
            )
            return False
    elif mode == 'delete':
        if not can_delete_suggestion(request.user, translation):
            messages.error(
                request,
                _('You do not have privilege to delete suggestions!')
            )
            return False
    elif mode in ('upvode', 'downvote'):
        if not can_vote_suggestion(request.user, translation):
            messages.error(
                request,
                _('You do not have privilege to vote for suggestions!')
            )
            return False
    return True
Esempio n. 5
0
def check_suggestion_permissions(request, mode, translation):
    """
    Checks permission for suggestion handling.
    """
    if mode in ("accept", "accept_edit"):
        if not can_accept_suggestion(request.user, translation):
            messages.error(request, _("You do not have privilege to accept suggestions!"))
            return False
    elif mode == "delete":
        if not can_delete_suggestion(request.user, translation):
            messages.error(request, _("You do not have privilege to delete suggestions!"))
            return False
    elif mode in ("upvode", "downvote"):
        if not can_vote_suggestion(request.user, translation):
            messages.error(request, _("You do not have privilege to vote for suggestions!"))
            return False
    return True
Esempio n. 6
0
    def add(self, unit, target, request):
        '''
        Creates new suggestion for this unit.
        '''

        if not request.user.is_authenticated():
            user = None
        else:
            user = request.user

        # Create the suggestion
        suggestion = self.create(
            target=target,
            contentsum=unit.contentsum,
            language=unit.translation.language,
            project=unit.translation.subproject.project,
            user=user
        )

        # Record in change
        Change.objects.create(
            unit=unit,
            action=Change.ACTION_SUGGESTION,
            translation=unit.translation,
            user=user,
            author=user
        )

        # Add unit vote
        if can_vote_suggestion(user, unit.translation):
            suggestion.add_vote(
                unit.translation,
                request,
                True
            )

        # Notify subscribed users
        notify_new_suggestion(unit, suggestion, user)

        # Update suggestion stats
        if user is not None:
            user.profile.suggested += 1
            user.profile.save()