AppointmentSentry guards Appointment entities and their component rows. Document entities also use the AppointmentSentry - since they are basically appointments with a bit of extra info attached.
The AppointmentSentry applies to the following classes: Appointment, AppointmentRow, TextRow, DocumentRow
ContactSentry guards Contact entities and their component rows. The ContactSentry applies to the following classes: Contact, ContactRow, TextRow, AddressRow, PhoneRow, EmailRow, UrlRow, InterestRows, UdefLarge and UdefSmall
DashboardTileSentry guards DashboardTile entities. It is using datarights and visiblefor to make sure you can only see or modify what you should be able to.
DocDocumentSentry guards DocDocument entities and their component rows.
The DocDocumentSentry applies to the following classes: DocDocument, DocDocumentRow, TextRow, UDLarge + UDSmall
Cache holding information about the ejcategories and category memberships
Class holding properties like field length, field type about a field in the carrier.
Wraps the field right together with an explanatory reason. Also adds logical operators to the field rights so that they can be easily combined.
Represents a Function Right together with an description of the function. Function rights typically represent abilities like "can admin users" or "can create private appointments".
Summary description for FunctionRightCache.
Base class for TableRight, FieldRight and FunctionRight. Provides a read-only reason field. Sub-classes define one or more permissions that the right can allow. For example: FieldRight defines Read+Write+Mandatory rights on a field.
Disposable class reruned by BeginIgnoreSentryCheck().
Dispose on the this class will invoke a EndIgnoreSentryCheck(). This object is designed to be used with
Abstract parent class - introduces the concept "IsActive" which is used by both FunctionRight and FieldRight
KbEntrySentry guards KbEntry entities and their component rows.
The KbEntrySentry applies to the following classes: KbEntry, KbEntryRow, TextRow, UDLarge + UDSmall
Collection of objects that implement the Lookup interface.
Summary description for OwnerContactCache.
PersonSentry guards Person entities and their component rows. The PersonSentry applies to the following classes: Person, PersonRow, AddressRow, PhoneRow, EmailRow, UrlRow, InterestRows, UdefLarge and UdefSmall
Tables covered by PersonSentry.
ProjectSentry guards Project entities and their component rows. The ProjectSentry applies to the following classes: Project, ProjectRow, ProjectMemberRow, PhoneRow, EmailRow, UrlRow, TextRow, UdefLarge and UdefSmall
Cache for Quoteline configuration fields
RelationsSentry guards Relations entities The RelationsSentry applies to the following classes: RelationsRow
ReplyTemplateSentry guards ReplyTemplate entities and their component rows.
The ReplyTemplateSentry applies to the following classes: ReplyTemplate, ReplyTemplateRow, TextRow, UDLarge + UDSmall
Summary description for Sentry.
SaleSentry guards Sale entities and their component rows.
The SaleSentry applies to the following classes: Sale, SaleRow, TextRow, UDLarge + UDSmall
SelectionSentry guards Selection entities and their component rows. The SelectionSentry applies to the following classes: Selection, SelectionRow, TextRow, SelectionMemberRow
Cache holding data rights on different tables. This should only be used internally by the sentries
Summary description for Sentry.
Helper class for identifying resources
Collects zero or more sentries together in an group. Makes it easy to perform aggregated queries across the collection.
Helper class that can be used by implementations of the ISentryIgnorable interface.
Attribute used to declare a sentry plug-in. Objects declared with this attribute also needs to implement the interface ISentryPlugin.
This attribute is used to declare a class to be a sentry plug-in query table updater for one particular table. Such classes have to implement the ISentryPluginQueryTableUpdater interface.
Summary description for SentryPreferenceCache.
Information about a query - like table infos, etc.
Class holding TableInfos on behalf of a Sentry implementation. Subclasses contain 'typed' tableinfos (as properties/fields) and 'untyped' tableinfos in an array.
This attribute is used to declare a class to be a query updated for a sentry. Such classes have to implement the ISentryQueryTableUpdater interface
Modifies SELECT queries according to the fields used in the query. For example, if a person row is being read, then a contact row will be outer-joined to provide the contact.associate-id for the sentry. If the appointment table is being searched, then the appointment table is inner-joined with the visible-for table to filter out any hidden/private appointments.
The query updater will analyze the query and automatically add the sentries it considers relevant to the query unless the SoCommand.IsAutoSentry flag is cleared.
The query updater uses the sentries attached to the query to modify the query to ensure that all the right fields and restrictions are in place. This ensures that private or unpublished data is filtered out on the server.
This plug-in will also throw an SoSentryException if an update violates a sentry's rules.
Wraps a table right together with an explanatory reason. Code can indicate why access is restricted.
TicketSentry guards Ticket entities and their component rows.
The TicketSentry applies to the following classes: Ticket, TicketRow, TextRow, UDLarge + UDSmall
Sentry for user-defined field definitions
Cache holding information about the users (e.g. associates) user groups
Helper class for sentry functionality, to modify SELECT queries so that they include the correct join and restriction
Interface providing mechanisms for temporary ignoring sentry for the current thread.
Interface that has to be implemented by sentry plug-ins.
Sentry plug-ins also needs to be declared with attribute SentryPluginAttribute.
Interface that has to be implemented by sentry plug-in query table updater for one particular table in order to modify queries sent to the database.
Interface for query modifiers connected to sentries. A sentry that needs to modify queries will contain one or more classes (one for each table to be modified) implementing this interface
ISoDataLookup is used by the sentry to figure out the values for a particular row.
This is used as an index into a matrix of tablerights when calculating the access rights for an associate.