Difference between revisions of "Freeside:1.9:Documentation:Developer:Agent-virtualized Config"
From Freeside
m (Freeside:1.7:Documentation:Developer:Agent-virtualized Config moved to Freeside:1.9:Documentation:Developer:Agent-virtualized Config) |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
= Introduction = | = Introduction = | ||
− | Quick notes on how to agent-virtualize a new aspect of the config (typically part_* tables), written up when agent-virtualizing package definitions (part_pkg) | + | Quick notes on how to agent-virtualize a new aspect of the config (typically part_* tables), written up when agent-virtualizing package definitions (part_pkg). |
= Schema.pm = | = Schema.pm = | ||
Line 39: | Line 39: | ||
= The hard part = | = The hard part = | ||
− | Find other places this part of the configuration is '''used''' (elements/select-part_TABLE, elements/tr-select-part_TABLE?) and agent-virtualize them too. | + | Find all other places this part of the configuration is '''used''' (elements/select-part_TABLE, elements/tr-select-part_TABLE?) and agent-virtualize them too. |
Latest revision as of 13:24, 26 July 2009
Introduction
Quick notes on how to agent-virtualize a new aspect of the config (typically part_* tables), written up when agent-virtualizing package definitions (part_pkg).
Schema.pm
- Add agentnum to the table.
AccessRight.pm
Add access rights:
- "Edit NNN"
- "Edit global NNN"
part_TABLE.pm
Edit the part_TABLE.pm (or whatever) module itself.
browse/table
- Move to new browse template if necessary
- Add to options:
- agent_virt => 1,
- agent_null_right => "Edit global NNN"
- agent_pos => whatever works on the page
- fix "access deined" check:
die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Edit NNN') || $FS::CurrentUser::CurrentUser->access_right('Edit global NNN')
- Agent-virtualize count_query
$FS::CurrentUser::CurrentUser->agentnums_sql( 'null_right' => 'Edit global NN', );
- If the query param is a normal qsearch hashref (which it probably is if the page already uses elements/browse, or should be if its being moved to elements/broswe), it will agent-virtualize itself from the agent_virt/agent_null_right/agent_pos options.
The hard part
Find all other places this part of the configuration is used (elements/select-part_TABLE, elements/tr-select-part_TABLE?) and agent-virtualize them too.