@Override
    public boolean validate(MessageCollector collector, IssueForm target) {
        boolean result = true;        
        
        if (!newIssue) {
            if (!visitor.isGranted(Permission.EDIT_ALL)) {
                if (visitor.isGranted(Permission.EDIT_SELF)) {
                    if (!visitor.equals(target.getCreator()) && !visitor.equals(target.getAssignee())) {
                        collector.addMessage(Severity.error, "Вы не можете редактировать это задание");
                        result = false;                        
                    }
                } else {
                    collector.addMessage(Severity.error, "Вы не можете редактировать это задание");
                    result = false;
                }
            }
        } else {
            if (!visitor.isGranted(Permission.CREATE)) {
                collector.addMessage(Severity.error, "Вам запрещено создавать задания");
                result = false;
            }
        }
        
        if (result) {
            if (isEmpty(target.getTitle())) {
                collector.addMessage(Severity.error, "Поле 'Тема' не может быть пустым");
                result = false;
            }
        }
        
        return result;
    }