Hi Bheem,
For cases like this, I would recommend using a hidden field which will hold the current user's account ID (username()). After having this field, you can query the use profile service, and if the returned value for the department is for example not equal to Sales, then you can set your fields to be disabled using a formatting rule with this condition (Department is not equal to Sales). If you want to disable the whole page then you could create a new view and set the Page Setup's general settings to read only. Hope this makes sense.
Regards,