We can control who has access to the form with 'Group Access' configuration against the form.
This doesn't allow fine grained control based on the Roles we have. Can you please suggest how can New Forms be made available based on the user role?
I did this by changing the portal pages to look for the role.
$userAccount.hasRole("sales"); will return the boolean value I was looking for.
Here are the pages I changed:
Also changed the security filter to make sure that the bookmarked URLs directly to the form don't work.
you'll also need some css change to make sure it shows properly on home page. I used childportal.css to put the customisations there.