I have client who has a number of tabs of information and they want to limit what's seen by user permissions.
I don't seem to be able to hide individual tabs, so instead I use a calculation to make the name invisible, and then hide the contents of those tabs... is there a better way to actually REMOVE the whole tab?
Unfortunately, a hide-tabs functionality is not available in FM up to v19.
A possible workaround is having several tab objects on a layout, with a hide condition that assures that only the tab object with the correct tabs is shown in a given context.
In cases like this, I personally like using Buttons or a Button Bar as the tab controls and a slider object as the tab panel.
@bdbd how did you do it?
How did I do what and where exactly? I did a lot of stuff.
Didn’t we do just that for our self serve project? Where some users wouldn’t see certain tabs in the details layout according to privileges or order status?
Ah! No! This was a client project. Each privilege set had a different layout. Not only were tab objects different for different privilege sets, other layout functionalities were too.
I have implemented @jwilling's suggestion on numerous occasions. Button bars segments can be hidden individually.
That said… keep in mind this in no real way prevents a determined user from accessing a tab panel. The tab panel and its content are still on the layout. A dedicated layout really is the most secure way, UI-wise, to restrict a user's access to data and functionality.
I think if you disable the dots and swipe gestures you can make it pretty hard to get to a hidden panel, at least.
But in cases where it really mattered, of course we'd make sure that the contents of the panel were hidden along with the tab button and also lock down all the requisite field/record/script permissions.
I've never seen an issue with users getting to incorrect panels, first hand. I'm sure it can be done, I just haven't yet.
FWIW... I already have these as a tab bar, and so I just put the button bar over it and named each tab and using "go to object" it worked fine. I didn't have to convert to a slider object from a tab object.
I take it back. there's a weird flash when I put the nav buttons over a tab bar... slider makes sense now.
You could also use GetLayoutObjectAttribute to determine the FRONT slide control, and if it is one that you don't want, GTO to someplace else. But like Josh said, without the dots and swipe gestures, a user getting to a slide panel is nearly impossible.