Skip to main content

valoride instruct save

BACKEND SYSTEM ENHANCEMENTS

  • ACL instead of giving an "anonymous" permission to normal users so they can see anonymous content, simply return "true" from any content that has an anonymousUser acl -- so do an anonymous check early in the flow for all requests and if there is an acl, return the result of the hasPermission as if the user was the anonymousUser (becuase anyone logged in should be able to see anonymous content)
  • Check for isAdmin before the anonymous check as it is the fastest result
  • fix, and optimize the checking of ROLE based permissions -- granting ROLE_EVERYONE read access does not seem to work build a test!
  • review the test suite and ensure edge cases are covered and there is good coverage for all of our ACL code

FRONTEND ENHANCEMENTS

  • must always use thorapi genearted model classes and RTK Query services, the existing redux store and our current front end stack
  • create a world-class CRM that combines our CMS (ie: content data like a blog article with links that is shared with a share group and we track response rate and click through)

  • create a world class Markdown editor with drag and drop image placement (we have ContentData containing a medialink array which track related files such as uploaded images, or pdfs... a piece of content could be seen as a container for other content as well, like a legal project with confidential pdf attachments , or more normally a blog with images and a video embedded... medialink would track these assets, so the editor needs to maintain these relationships as well. See our current implementation for an example of how quickly our components can be used to create a usable UX... we just need way better than usable we need world-class in this case FileUploader creates medialinks so we need a way to drag and drop them in the new Markdown editor

              <SplitPaneView2>
<div>
<h2>Content Management</h2>
<ContentList callback={addNewTab} />
</div>

<SplitPaneView2>
<FileUploader />

<Tabs key={"ContentData"}>
<Tab title="ContentData Table" eventKey="ContentDataT">
<ContentDataTable />
</Tab>
<Tab title="Edit ContentData" eventKey="ContentDataF">
<ContentDataForm />
</Tab>
</Tabs>
</SplitPaneView2>
</SplitPaneView2>