Skip to main content

Security

What each group may do with each model, as the modules define it. Odoo applies access rights and record rules the same way to the user interface, imports and RPC calls. Which role needs which group is explained in Roles and permissions.

Groups​

GroupXML idImpliesDescription
Rx Tracking / Manageraglow_rx_tracking.group_dscsa_manageraglow_rx_tracking.group_dscsa_userManage licenses, quarantine and release lots, verify returns, answer trace requests, set legal holds.
Rx Tracking / Useraglow_rx_tracking.group_dscsa_userquality.group_quality_user, stock.group_stock_userScan serials, view packages, licenses and DSCSA documents.
DSCSA Owner Portalaglow_rx_tracking_3pl.group_dscsa_owner_portalbase.group_portalPortal access of a 3PL owner's users to the owner's DSCSA documents, stock and holds.

Access rights​

One row per access rule the modules define (read, write, create, delete).

ModelGroupReadWriteCreateDeleteModule
dscsa.archive.jobRx Tracking / Manager✓✓––aglow_rx_tracking
dscsa.archive.jobRx Tracking / User✓–––aglow_rx_tracking
dscsa.client.list.wizardRx Tracking / User✓✓✓✓aglow_rx_tracking_3pl
dscsa.discrepancyRx Tracking / Manager✓✓✓–aglow_rx_tracking
dscsa.discrepancyRx Tracking / User✓✓––aglow_rx_tracking
dscsa.documentRx Tracking / Manager✓✓––aglow_rx_tracking
dscsa.documentRx Tracking / User✓–––aglow_rx_tracking
dscsa.documentUser types / Portal✓–––aglow_rx_tracking
dscsa.document.historyRx Tracking / Manager✓✓✓✓aglow_rx_tracking
dscsa.document.historyRx Tracking / User✓–––aglow_rx_tracking
dscsa.document.lineRx Tracking / Manager✓–––aglow_rx_tracking
dscsa.document.lineRx Tracking / User✓–––aglow_rx_tracking
dscsa.document.publish.wizardRx Tracking / Manager✓✓✓✓aglow_rx_tracking_3pl
dscsa.epcis.importRx Tracking / User✓–––aglow_rx_tracking
dscsa.epcis.import.wizardRx Tracking / User✓✓✓✓aglow_rx_tracking
dscsa.facility.eventRx Tracking / Manager✓✓✓–aglow_rx_tracking_3pl
dscsa.facility.eventRx Tracking / User✓–––aglow_rx_tracking_3pl
dscsa.fda.reportRx Tracking / Manager✓✓✓–aglow_rx_tracking_3pl
dscsa.fda.reportRx Tracking / User✓–––aglow_rx_tracking_3pl
dscsa.gate.logRx Tracking / Manager✓–––aglow_rx_tracking_3pl
dscsa.gate.logRx Tracking / User✓–––aglow_rx_tracking_3pl
dscsa.inventory.serials.lineRx Tracking / User✓✓✓✓aglow_rx_tracking
dscsa.inventory.serials.wizardRx Tracking / User✓✓✓✓aglow_rx_tracking
dscsa.jurisdictionRx Tracking / Manager✓✓✓–aglow_rx_tracking_3pl
dscsa.jurisdictionRx Tracking / User✓–––aglow_rx_tracking_3pl
dscsa.ledger.checkRx Tracking / Manager✓–––aglow_rx_tracking
dscsa.ledger.owner.checkRx Tracking / Manager✓–––aglow_rx_tracking_3pl
dscsa.ledger.owner.checkRx Tracking / User✓–––aglow_rx_tracking_3pl
dscsa.legal.hold.wizardRx Tracking / Manager✓✓✓–aglow_rx_tracking
dscsa.licenseRx Tracking / Manager✓✓✓✓aglow_rx_tracking
dscsa.licenseRx Tracking / User✓–––aglow_rx_tracking
dscsa.lot.quarantine.owner.lineRx Tracking / Manager✓✓✓✓aglow_rx_tracking_3pl
dscsa.lot.quarantine.wizardRx Tracking / Manager✓✓✓✓aglow_rx_tracking
dscsa.opening.balance.wizardRx Tracking / Manager✓✓✓✓aglow_rx_tracking
dscsa.owner.data.wizardRx Tracking / Manager✓✓✓✓aglow_rx_tracking_3pl
dscsa.owner.data.wizardRx Tracking / User✓✓✓✓aglow_rx_tracking_3pl
dscsa.owner.exportRx Tracking / Manager✓✓✓–aglow_rx_tracking_3pl
dscsa.owner.exportRx Tracking / User✓–––aglow_rx_tracking_3pl
dscsa.owner.holdRx Tracking / Manager✓–––aglow_rx_tracking_3pl
dscsa.owner.holdRx Tracking / User✓–––aglow_rx_tracking_3pl
dscsa.owner.hold.releaseRx Tracking / Manager✓✓✓✓aglow_rx_tracking_3pl
dscsa.owner.hold.releaseRx Tracking / User✓–––aglow_rx_tracking_3pl
dscsa.owner.instructionRx Tracking / Manager✓–✓–aglow_rx_tracking_3pl
dscsa.owner.instructionRx Tracking / User✓–✓–aglow_rx_tracking_3pl
dscsa.owner.noticeRx Tracking / Manager✓–––aglow_rx_tracking_3pl
dscsa.owner.noticeRx Tracking / User✓–––aglow_rx_tracking_3pl
dscsa.owner.orderRx Tracking / Manager✓✓✓✓aglow_rx_tracking_3pl
dscsa.owner.orderRx Tracking / User✓✓✓–aglow_rx_tracking_3pl
dscsa.owner.order.lineRx Tracking / Manager✓✓✓✓aglow_rx_tracking_3pl
dscsa.owner.order.lineRx Tracking / User✓✓✓✓aglow_rx_tracking_3pl
dscsa.owner.portal.accessRx Tracking / Manager✓✓✓✓aglow_rx_tracking_3pl
dscsa.owner.portal.access.lineRx Tracking / Manager✓✓✓✓aglow_rx_tracking_3pl
dscsa.owner.profileRx Tracking / Manager✓✓✓–aglow_rx_tracking_3pl
dscsa.owner.profileRx Tracking / User✓–––aglow_rx_tracking_3pl
dscsa.owner.report.csvRx Tracking / User✓✓✓✓aglow_rx_tracking_3pl
dscsa.packageRx Tracking / Manager✓–––aglow_rx_tracking
dscsa.packageRx Tracking / User✓–––aglow_rx_tracking
dscsa.packageInventory / User✓–––aglow_rx_tracking
dscsa.recall.consigneesRx Tracking / Manager✓✓✓✓aglow_rx_tracking_3pl
dscsa.recall.consigneesRx Tracking / User✓✓✓✓aglow_rx_tracking_3pl
dscsa.recall.consignees.lineRx Tracking / Manager✓✓✓✓aglow_rx_tracking_3pl
dscsa.recall.consignees.lineRx Tracking / User✓✓✓✓aglow_rx_tracking_3pl
dscsa.record.ts.wizardRx Tracking / User✓✓✓✓aglow_rx_tracking
dscsa.retention.exportRx Tracking / Manager✓–––aglow_rx_tracking
dscsa.scan.wizardRx Tracking / User✓✓✓✓aglow_rx_tracking
dscsa.send.owner.documentsRx Tracking / User✓✓✓✓aglow_rx_tracking_3pl
dscsa.title.import.wizardRx Tracking / Manager✓✓✓✓aglow_rx_tracking_3pl
dscsa.title.import.wizardRx Tracking / User✓✓✓✓aglow_rx_tracking_3pl
dscsa.title.select.serialsRx Tracking / Manager✓✓✓✓aglow_rx_tracking_3pl
dscsa.title.select.serialsRx Tracking / User✓✓✓✓aglow_rx_tracking_3pl
dscsa.title.transferRx Tracking / Manager✓✓✓–aglow_rx_tracking_3pl
dscsa.title.transferRx Tracking / User✓✓✓–aglow_rx_tracking_3pl
dscsa.title.transfer.lineRx Tracking / Manager✓✓✓✓aglow_rx_tracking_3pl
dscsa.title.transfer.lineRx Tracking / User✓✓✓✓aglow_rx_tracking_3pl
dscsa.trace.requestRx Tracking / Manager✓✓✓–aglow_rx_tracking
dscsa.trace.requestRx Tracking / User✓✓✓–aglow_rx_tracking
quality.alertRx Tracking / Manager✓✓✓✓aglow_rx_tracking_quality
quality.alertRx Tracking / User✓✓✓–aglow_rx_tracking_quality

Record rules​

Rules without a group are global: they apply to every user, on top of the group rules.

ModelRuleGroupsDomainApplies toModule
dscsa.archive.jobDSCSA S3 archive job: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking
dscsa.discrepancyDSCSA receiving discrepancy: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking
dscsa.documentDSCSA document: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking
dscsa.documentDSCSA document: portal buyerUser types / Portal[('direction', '=', 'outbound'), ('state', '=', 'posted'), ('partner_id', 'child_of', [user.commercial_partner_id.id])]readaglow_rx_tracking
dscsa.documentDSCSA document: owner portal (documents in the owner's name)DSCSA Owner Portal[('state', '=', 'posted'), ('dscsa_owner_id', '=', user.commercial_partner_id.id)]readaglow_rx_tracking_3pl
dscsa.documentDSCSA document: share users see owner documents only when visible to themall users (global)['|', ('dscsa_owner_id', '=', False), '|', ('dscsa_buyer_visible', '=', True), ('dscsa_owner_id', '=', user.commercial_partner_id.id)] if user.share else [(1, '=', 1)]read/write/create/deleteaglow_rx_tracking_3pl
dscsa.document.historyDSCSA transaction history: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking
dscsa.document.lineDSCSA document line: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking
dscsa.epcis.importSupplier EPCIS file: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking
dscsa.facility.eventDSCSA facility event: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking_3pl
dscsa.fda.reportDSCSA FDA annual report: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking_3pl
dscsa.gate.logDSCSA gate log: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking_3pl
dscsa.jurisdictionDSCSA jurisdiction: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking_3pl
dscsa.ledger.checkDSCSA ledger check: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking
dscsa.ledger.owner.checkDSCSA ledger vs stock per owner: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking_3pl
dscsa.licenseDSCSA license: multi-companyall users (global)['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking
dscsa.owner.exportDSCSA owner export: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking_3pl
dscsa.owner.holdDSCSA owner hold: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking_3pl
dscsa.owner.instructionDSCSA owner instruction: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking_3pl
dscsa.owner.noticeDSCSA owner notice: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking_3pl
dscsa.owner.orderDSCSA owner order: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking_3pl
dscsa.owner.order.lineDSCSA owner order line: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking_3pl
dscsa.owner.profileDSCSA owner profile: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking_3pl
dscsa.packageDSCSA package: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking
dscsa.retention.exportDSCSA retention export: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking
dscsa.title.transferDSCSA title transfer: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking_3pl
dscsa.title.transfer.lineDSCSA title transfer line: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking_3pl
dscsa.trace.requestDSCSA trace request: multi-companyall users (global)[('company_id', 'in', company_ids)]read/write/create/deleteaglow_rx_tracking
stock.pickingTransfers: portal users limited to their commercial partner (DSCSA)all users (global)['|', ('partner_id', 'child_of', [user.commercial_partner_id.id]), ('sale_id.partner_id', 'child_of', [user.commercial_partner_id.id])] if user.share else [(1, '=', 1)]read/write/create/deleteaglow_rx_tracking