How do I stop registered users from changing their details like their username etc (via edit profile) in the frontend?
open components\com_users\models\forms\profile.xml
and then edit:
<field name="password1" type="password"
readonly="true"
/>
You can at the 'disabled attribute to the input fields u don't want to be changed. Most of the users won't fiddle around with you page's source code.
<input type="text" disabled="disabled" />