Trac – ограниченное назначение разрешений

Здравствуйте, уважаемые разработчики.

Недавно я установил trac на своем рабочем месте и в настоящее время управляю им. Так что все было хорошо, пока я не нашел это требование, которое кажется невозможным с trac (с тем, что идет по умолчанию)

У меня несколько групп, и у них разные разрешения. Предположим, что они такие, как показано ниже.

Super Admin - John
Engineer Admin - Jane, Jack, 
Engineer - Peter, Sam, 
Quality Assurance - Bill, Steve, Rose

Теперь я хочу, чтобы эти ребята из QA имели возможность создавать тикеты. Это можно сделать с разрешениями. Но когда они создают тикет, я хочу ограничить их привилегии, которым они могут его назначать. Это означает, что они должны иметь возможность назначать заявку только Джейн или Джеку (или, скажем, группе администраторов инженера). Затем Джейн/Джек назначит его любому инженеру.

Вот как я хочу управлять потоком. Но я понятия не имею, как это сделать. Я искал и нашел несколько плагинов, но все они отличаются от того, что я хочу.

Может ли кто-нибудь указать мне, что делать?

Заранее спасибо. Пожалуйста, не стесняйтесь спрашивать что-нибудь, если я недостаточно ясен.


person Nimeshka Srimal    schedule 17.11.2014    source источник


Ответы (1)


Это должно быть возможно сделать с помощью Trac, плагины не нужны, но вам нужно будет включить некоторые компоненты, которые не включены по умолчанию. Надеюсь, вы используете последнюю версию, предпочтительно Trac 1.0.2.

Включите поставщика дополнительных разрешений:

[components]
tracopt.perm.config_perm_provider.extrapermissionsprovider = enabled

Создайте специальное разрешение для группы контроля качества на назначение тикетов и для всех остальных пользователей на назначение тикетов:

[extra-permissions]
_perms = TICKET_ASSIGN_QA, TICKET_ASSIGN

Предоставьте TICKET_ASSIGN_QA группе контроля качества. Создайте специальное действие рабочего процесса для группы контроля качества:

[ticket-workflow]
qa_reassign = new -> assigned
qa_reassign.name = assign
qa_reassign.operations = set_owner
qa_reassign.set_owner = Jack, Jane
qa_reassign.permission = TICKET_ASSIGN_QA

Если вы используете рабочий процесс по умолчанию, для операции reassign вам нужно будет указать атрибут permission в рабочем процессе заявки, требуя разрешения, которого нет у группы контроля качества, чтобы они не видели это действие рабочего процесса. Следующее также входит в раздел [ticket-workflow].

reassign.permission = TICKET_ASSIGN

Эта конфигурация выглядит сложной, поэтому не стесняйтесь обращаться к ней, если вам нужны дополнительные советы.

person RjOllos    schedule 17.11.2014
comment
Привет, спасибо за ответ. на самом деле я использую Bitnami Trac 1.0.1, надеюсь, все в порядке? Я добавил новую строку в trac.ini, но не вижу разрешения в админке? - person Nimeshka Srimal; 17.11.2014
comment
Trac 1.0.1 должен подойти. Вам необходимо включить Component. Ответ отредактирован выше. - person RjOllos; 17.11.2014
comment
О... хорошо, спасибо... Теперь я вижу это в админке и добавил разрешение в qa. Можете ли вы рассказать мне больше об этом рабочем процессе? что делать дальше? - person Nimeshka Srimal; 17.11.2014
comment
ExtraPermissionsProvider позволяет вам определять произвольные разрешения, которые затем можно назначать пользователям или группам. Затем вы можете потребовать разрешения для действия рабочего процесса, что ограничит доступность этого действия для определенных пользователей или групп. См. документацию TracWorkflow. - person RjOllos; 17.11.2014
comment
Если у команды контроля качества уже есть разрешение на изменение билета? что случится? я должен удалить это? это то, что у них есть прямо сейчас... REPORT_VIEW TICKET_APPEND TICKET_ASSIGN_QA TICKET_MODIFY TICKET_VIEW - person Nimeshka Srimal; 17.11.2014
comment
Вам не нужно отзывать TICKET_MODIFY из отдела контроля качества. Вам просто нужно определить другое разрешение, необходимое для действия reassign в рабочем процессе по умолчанию. Или вы можете удалить действие по умолчанию reassign и создать собственные действия рабочего процесса. - person RjOllos; 17.11.2014
comment
Хорошо ... большое спасибо за поддержку ... я еще увижу это ... я не забуду принять ответ, как только я это исправлю. - person Nimeshka Srimal; 17.11.2014
comment
Конечно, дайте мне знать, если у вас есть другие вопросы. Я ожидаю, что потребуется немного экспериментов, чтобы сделать это правильно. Если вы предпочитаете редактировать рабочий процесс через браузер, вам может помочь TracWorkflowAdminPlugin. - person RjOllos; 17.11.2014
comment
Еще один вопрос, какова фактическая связь между qa_reassign в [рабочем процессе обращения] и TICKET_ASSIGN_QA в [дополнительных разрешениях]?? потому что я не вижу никакой связи между ними. как новый рабочий процесс влияет на TICKET_ASSIGN_QA? - person Nimeshka Srimal; 17.11.2014
comment
[extra-permissions] определяет разрешение. Разрешение должно быть назначено группе контроля качества с помощью инструмента командной строки trac-admin или на странице Разрешения в WebAdmin. И, наконец, я упустил одну часть выше, которую я сейчас исправлю: qa_reassign.permissions = TICKET_ASSIGN_QA, в которой говорится, что пользователь должен иметь TICKET_ASSIGN_QA, чтобы увидеть действие рабочего процесса. - person RjOllos; 17.11.2014
comment
Я публикую расширение этого ответа к вашему сообщению на отслеживать список рассылки пользователей. - person RjOllos; 18.11.2014
comment
Давайте продолжим обсуждение в чате. - person RjOllos; 18.11.2014
comment
Привет RjOllos, большое спасибо за поддержку. На самом деле ваш ответ является решением для этого. Я подошел так близко. Но мое требование изменилось, потому что разрешение на назначение группы qa время от времени меняется ... они могут назначать его администраторам только при создании заявки. и после этого они должны иметь возможность назначать его кому угодно. это выглядит запутанно, поэтому мы придерживаемся нашего старого плана :) - person Nimeshka Srimal; 20.11.2014
comment
Ваше новое требование будет несложно реализовать. Это просто потребует еще нескольких действий рабочего процесса. Если вы когда-нибудь захотите попробовать и вам понадобится помощь, просто отправьте эхо-запрос в список рассылки пользователей trac. . - person RjOllos; 20.11.2014
comment
См. сообщение в списке рассылки trac-users, чтобы узнать больше. информация, включая новую функцию, добавленную в Trac #11839. - person RjOllos; 31.12.2014
comment
Привет, Рьоллос, у меня другая проблема... можешь мне помочь? - person Nimeshka Srimal; 28.05.2015
comment
Конечно, но, пожалуйста, создайте новый поток SO, если это новая проблема. Если вы отметите тему trac, я ее увижу. Кроме того, вы можете задать свой вопрос в списке рассылки TracUsers. - person RjOllos; 28.05.2015