Saurabh Nanda
Saurabh Nanda
> unless you want to write code that's polymorphic and you want to handle all XXXInactive statuses etc Not completely sure what you mean by this. Possible to share some...
> Use a helper function to remove the following boilerplate from all places: > return $ case r of > [] -> Nothing > (x:xs) -> Just x Just check...
Overall the `Auditable` interface looks like a great attempt. Did you already know TH, or did you learn it to solve this problem?
@wz1000 do take a look at https://github.com/vacationlabs/haskell-webapps/blob/master/ServantOpaleye/db/schema.sql and https://vacationlabs.github.io/haskell-webapps/ServantOpaleye/db/schema_spy/
@wz1000 has this been closed by #30
What about cases where even on the admin side, different user-roles are to be given view-level access to different fields. On Wed, Oct 5, 2016 at 7:19 PM, Sudhir Kumar...
@sudhirvkumar Option 1 is the easy default. The real question here is whether we can do better with help from Haskell's type-system 😀
@jfoutz just to be clear, what do you mean when you say "role"? Is "admin" or "finance manager" a role? Or, is "view-any-booking" or "view-any-booking" a role? For me, a...
@jfoutz that's pretty much how roles and permissions have been modelled in the starter DB schema we have in the repo. Except perhaps not having permissions in a separate table....
- There's also a [role list UI](https://vacationlabs.github.io/haskell-webapps/ui-mockups/roles.html) - Where does the mapping of permission "label" (or "ID") => human-readable name come from? eg. `edit_product_content` => `Edit product textual content`, `edit_product_price`...