Here is the use scenario that bought about the question:
1. We are trying to build a configuration object
2. This object would need to have at least these fields:
a. Object (User-selected)
b. Object Integration Name (hidden)
c. View (Filtered by selected Object in A, User-selected)
d. View Original ID (hidden)
3. The object list and the view list need to by dynamic depending on the current state of the application
4. The object list and view list will only show the objects and views that the current user has access to
5. The configuration records will be used to generate custom HTML-based list views for the selected views. This is so that we would be able to:
a. Create more than one list view for an object in a page
b. Give our users the ability to choose which list views they want to see on their dashboard/pages
c. Style the views to our liking and not be bound by the standard HTML and CSS code of the platform
6. I plan to get the records and columns using the rbf_getPage() method for each of the configurations that a user has setup. This is to take advantage of the feature of the getPage method where it only displays records that a user has access to.
Now, my problem lies with 2a thru 2d.
- As far as I dug through the documentation, there is currently no way that I know of (yet) where a non-admin user would be able to get a list of objects he/she has access to.
- As far as my research goes only admins with a valid login() sessionId or basic auth would be able to utilize the metadata API.
- If I use the metadata API as an admin (hard-coded UN and PW) and try to get the Object XML Definition of an object, it does NOT include the list of Views along with their names and IDs.
How am I able to perform the above and which APIs should I use?
I hope that the APIs that I need were just not yet documented in the API reference.
Sorry for late reaction.
We have already had a enhancement ticket#51898 to include Metadata API for Pages and Views.
And for your other case yes for non-admin users Metadata API will won't work its applicable for admin users.
Unfortunately, as long as the end-user doesn't have access to the metadata api then it won't work for my use case.
I decided to use another approach where i use metadata as an admin and that seems to be working as expected.
The only thing left is the pages and views which you said will be provided via an enhancement.