2013-02-14 7 views
0

Я пытаюсь использовать API Redmine для создания проблем, но, похоже, я не могу указать, кто отправляет билет. Я попытался получить author_id, и он не работает.Redmine API - Создание проблем

Это то, что данные JSON в POST выглядит следующим образом:

{ 
     "issue": { 
      "author_id": 3, 
      "project_id": 26, 
      "subject": "Q-12345678", 
      "description": "This is a test" 
     } 
    } 

Проблема создается, но автор создается анонимным. Какие-либо предложения?

ответ

0

Ну, я понял. Как оказалось, author_id не задан как «безопасный параметр».

Я открыл app/models/issue.rb и добавил author_id на линии 337.

Так что теперь блок кода выглядит следующим образом:

safe_attributes 'tracker_id', 
     'status_id', 
     'category_id', 
     'author_id', 
     'assigned_to_id', 
     'priority_id', 
     'fixed_version_id', 
     'subject', 
     'description', 
     'start_date', 
     'due_date', 
     'done_ratio', 
     'estimated_hours', 
     'custom_field_values', 
     'custom_fields', 
     'lock_version', 
     'notes', 
     :if => lambda {|issue, user| issue.new_record? || user.allowed_to?(:edit_issues, issue.project) } 

EDIT

Я думаю, что это могло бы быть лучше раствор в app/models/issue.rb (строка 375)

После

safe_attributes 'parent_issue_id', 
     :if => lambda {|issue, user| (issue.new_record? || user.allowed_to?(:edit_issues, issue.project)) && 
      user.allowed_to?(:manage_subtasks, issue.project)} 

Я добавил

safe_attributes 'author_id', 
     :if => lambda {|issue, user| issue.new_record? || user.allowed_to?(:admin, issue.project)} 
Смежные вопросы