Ejemplo n.º 1
0
 def permissions(self):
     """
     Permissions available to current user.
     """
     base_permissions = super(InvoiceWorkflow, self).permissions()
     if self.document.user == g.user:
         base_permissions.append('owner')
     base_permissions.extend(lastuser.permissions())
     return base_permissions
Ejemplo n.º 2
0
def available_invoices(workspace, user=None):
    if user is None:
        user = g.user
    query = Invoice.getw(workspace)
    # FIXME+TODO: Replace with per-workspace permissions
    if 'reviewer' in lastuser.permissions():
        # Get all invoices owned by this user and in states where the user can review them
        query = query.filter(db.or_(
            Invoice.user == user, Invoice.status.in_(InvoiceWorkflow.reviewable.values)))
    else:
        query = query.filter_by(user=user)
    return query
Ejemplo n.º 3
0
def sidebarvars():
    if hasattr(g, "user"):
        # More access control?
        org_ids = g.user.organizations_memberof_ids()
    else:
        org_ids = []
    workspaces = Workspace.query.filter(Workspace.userid.in_(org_ids)).order_by("title").all()
    if hasattr(g, "workspace"):
        return {
            "workspaces": workspaces,
            "categories": Category.get(g.workspace).order_by("title").all(),
            "invoice_states": InvoiceWorkflow.states(),
            "permissions": lastuser.permissions(),
        }
    else:
        return {"workspaces": workspaces}
Ejemplo n.º 4
0
def sidebarvars():
    if hasattr(g, 'user') and g.user:
        # More access control?
        org_ids = g.user.organizations_memberof_ids()
    else:
        org_ids = []
    workspaces = Workspace.query.filter(Workspace.userid.in_(org_ids)).order_by('title').all()
    if hasattr(g, 'workspace'):
        return {
            'workspaces': workspaces,
            'categories': Category.get(g.workspace).order_by('title').all(),
            'invoice_states': InvoiceWorkflow.states(),
            'permissions': lastuser.permissions()
        }
    else:
        return {
            'workspaces': workspaces,
        }