VoileWeb.Auth.StockOpnameAuthorization (Voile v0.1.26)

Copy Markdown View Source

Authorization helpers specific to Stock Opname functionality.

Summary

Functions

Authorize user for session approval or raise unauthorized error.

Authorize user for scanning items or raise unauthorized error.

Authorize user for session creation or raise unauthorized error.

Check if user can approve/reject stock opname sessions. Super admins can approve anywhere, users can approve sessions for their own node.

Check if user can complete a stock opname session. Super admins can complete anywhere, users can complete sessions for their own node.

Check if user can complete their work session (assigned librarian with scanned items).

Check if user can create stock opname sessions. Super admins can create anywhere, regular users can only create for their own node.

Check if user can delete a stock opname session. Super admins can delete anywhere, users can delete sessions for their own node. Only approved or cancelled sessions can be deleted.

Check if user can scan items in a session (assigned librarian only).

Check if user can start a stock opname session. Super admins can start anywhere, users can start sessions for their own node.

Check if user can view a stock opname session. Super admins can view all, users can view sessions where they are assigned as librarians.

Get librarian assignment for a session.

Check if user is an assigned librarian for a session.

Functions

authorize_approval!(user, session)

Authorize user for session approval or raise unauthorized error.

authorize_scanning!(user, session)

Authorize user for scanning items or raise unauthorized error.

authorize_session_creation!(user)

Authorize user for session creation or raise unauthorized error.

can_approve_session?(user, session)

Check if user can approve/reject stock opname sessions. Super admins can approve anywhere, users can approve sessions for their own node.

can_complete_session?(user, session)

Check if user can complete a stock opname session. Super admins can complete anywhere, users can complete sessions for their own node.

can_complete_work?(user, session)

Check if user can complete their work session (assigned librarian with scanned items).

can_create_session?(user)

Check if user can create stock opname sessions. Super admins can create anywhere, regular users can only create for their own node.

can_create_session?(user, node_ids)

can_delete_session?(user, session)

Check if user can delete a stock opname session. Super admins can delete anywhere, users can delete sessions for their own node. Only approved or cancelled sessions can be deleted.

can_scan_items?(user, session)

Check if user can scan items in a session (assigned librarian only).

can_start_session?(user, session)

Check if user can start a stock opname session. Super admins can start anywhere, users can start sessions for their own node.

can_view_session?(user, session)

Check if user can view a stock opname session. Super admins can view all, users can view sessions where they are assigned as librarians.

get_assignment(user_id, session_id)

Get librarian assignment for a session.

is_assigned_librarian?(user_id, session_id)

Check if user is an assigned librarian for a session.