This is for the windows client
- SuperOffice SIX starts login
- The SentryAddonNames preference section is read -- all the plugins named here are attempted created. If any plugin fails to create then the login process is aborted.
- Each plugin is checked to see if it supports the ISentryPlugin2 interface.
- For each plugin that supports ISentryPlugin2: Call the Initialize function.
- For each plugin: Call the GetTableList to find out which entities need to call this plugin
- Login completes.
- For each object loaded (Contact, Person, Project, Selection, Appointment, Document, Sale, Relation), call the plugin's GetProviderDetails
- If plugin needs full data, load entire row if not already loaded (potential performance hit!)
- Call plugin's GetRowSecurity (and GetTableSecurity if plugin supports ISentryPlugin2)
- If plugin supports field level data, call GetFieldSecurity (and GetFieldRights if plugin support ISentryPlugin2)
- Combine plugin results with results from database data-rights matrix. Yield the lowest common denominator as the result.
- User interface reacts to field rights.
The CRM5.web client is very similar, but there is no support for field-level security, and the entire call sequence is performed every time a page is loaded. In other words, every click can trigger several sentries.
SIX.web will use a new plugin system based on .net rather than COM, and will allow application queries to be modified on the fly.
Up: Plugin Examples Prev: Sentry Example Edit