Regarding security, you can specify which roles have access to specific contenttypes in the admin under "Users".
Regarding loading of data, you can always create a service class to load the data (implement IDependency
so you can inject it in other classes like Controllers or Handlers).
public class EventService : IEventService {
private IContentManager _contentManager;
public EventService(IContentManager contentManager) {
_contentManager = contentManager;
}
public IEnumerable<IContent> GetEvents() {
return _contentManager.Query("Event").List();
}
}
public interface IEventService : IDependency {
IEnumerable<IContent> GetEvents();
}
Now you're able to load the data. How are you going to use or display it? Knowing this is essential in finding a solution as to where you want to load the data. This could be in a Controller
or somewhere in a ContentPartDriver
implementation, the former requires 'manual' displaying/storing of data, the latter requires the creation of a contentpart, driver, handler and placement. But proper implementation handles displaying and storing of data.