Adds the ability to set up read only users, adds linking filtering
This commit is contained in:
55
src/cljc/auto_ap/permissions.cljc
Normal file
55
src/cljc/auto_ap/permissions.cljc
Normal file
@@ -0,0 +1,55 @@
|
||||
(ns auto-ap.permissions)
|
||||
|
||||
(defn can? [user {:keys [client subject activity]}]
|
||||
(let [role (or (:user/role user) (:role user) user)]
|
||||
(println "ROLE IS" role)
|
||||
(cond (#{:user-role/admin "admin"} role)
|
||||
true
|
||||
|
||||
(#{:user-role/power-user "power-user"} role)
|
||||
(cond
|
||||
(#{:invoice-page :payment-page :my-company-page :transaction-page :ledger-page} subject)
|
||||
true
|
||||
|
||||
(= [:vendor :create] [subject activity])
|
||||
true
|
||||
|
||||
(= [:vendor :edit] [subject activity])
|
||||
true
|
||||
|
||||
:else false)
|
||||
|
||||
(#{:user-role/manager "manager"} role)
|
||||
(cond
|
||||
(#{:invoice-page :payment-page :my-company-page :transaction-page} subject)
|
||||
true
|
||||
|
||||
(= [:vendor :create] [subject activity])
|
||||
true
|
||||
|
||||
(= [:vendor :edit] [subject activity])
|
||||
true
|
||||
|
||||
:else false)
|
||||
|
||||
(#{:user-role/read-only "read-only"} role)
|
||||
(cond
|
||||
(= :ledger-page subject) true
|
||||
|
||||
:else false)
|
||||
|
||||
(#{:user-role/user "user"} role)
|
||||
(cond
|
||||
(#{:invoice-page :payment-page :my-company-page :transaction-page :ledger-page} subject)
|
||||
true
|
||||
|
||||
(= [:vendor :create] [subject activity])
|
||||
true
|
||||
|
||||
(= [:vendor :edit] [subject activity])
|
||||
true
|
||||
|
||||
:else false)
|
||||
|
||||
:else
|
||||
false)))
|
||||
Reference in New Issue
Block a user