Namespace SuperOffice.CRM.Security
Classes
AppointmentSentry
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
AppointmentSentryQueryInfo
AssociateSentry
AssociateSentryQueryInfo
ContactSentry
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
ContactSentryQueryInfo
DashboardSentry
DashboardSentry guards Dashboard entities. It is using datarights and visiblefor to make sure you can only see or modify what you should be able to.
DashboardSentryQueryInfo
DashboardTileSentry
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.
DashboardTileSentryQueryInfo
DocDocumentSentry
DocDocumentSentry guards DocDocument entities and their component rows.
The DocDocumentSentry applies to the following classes: DocDocument, DocDocumentRow, TextRow, UDLarge + UDSmall
DocDocumentSentryQueryInfo
EjCategoryCache
Cache holding information about the ejcategories and category memberships
ErpConnectionAccessCache
FieldProperty
Class holding properties like field length, field type about a field in the carrier.
FieldPropertyDictionary
FieldRight
Wraps the field right together with an explanatory reason. Also adds logical operators to the field rights so that they can be easily combined.
FieldRights
FunctionRight
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".
FunctionRightCache
GenericRight
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.
HierarchySentry
Guards Hierarchy entities - only admins can create, update, delete them.
HierarchySentryQueryInfo
IgnoreSentryCheck
Disposable class reruned by BeginIgnoreSentryCheck().
Dispose on the this class will invoke a EndIgnoreSentryCheck().
This object is designed to be used with using
.
ItemRight
Abstract parent class - introduces the concept "IsActive" which is used by both FunctionRight and FieldRight
KbEntrySentry
KbEntrySentry guards KbEntry entities and their component rows.
The KbEntrySentry applies to the following classes: KbEntry, KbEntryRow, TextRow, UDLarge + UDSmall
KbEntrySentryQueryInfo
LookupCollection
Collection of objects that implement the Lookup interface.
OwnerContactCache
PersonSentry
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
PersonSentry.PersonSentryQueryInfo
Tables covered by PersonSentry.
ProjectSentry
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
ProjectSentryQueryInfo
QuoteAlternativeSentry
QuoteAlternativeSentryQueryInfo
QuoteLineConfigurationCache
Cache for Quoteline configuration fields
QuoteLineSentry
QuoteLineSentryQueryInfo
QuoteSentry
QuoteSentryQueryInfo
QuoteVersionSentry
QuoteVersionSentryQueryInfo
RefCountsPermissionCache
RelationsSentry
RelationsSentry guards Relations entities The RelationsSentry applies to the following classes: RelationsRow
RelationsSentryQueryInfo
ReplyTemplateSentry
ReplyTemplateSentry guards ReplyTemplate entities and their component rows.
The ReplyTemplateSentry applies to the following classes: ReplyTemplate, ReplyTemplateRow, TextRow, UDLarge + UDSmall
ReplyTemplateSentryQueryInfo
Rights<TKey, TValue>
RoleRightsSentry<TMainTable>
Summary description for Sentry.
SORPublishSentry
SORPublishSentryQueryInfo
SaleSentry
SaleSentry guards Sale entities and their component rows.
The SaleSentry applies to the following classes: Sale, SaleRow, TextRow, UDLarge + UDSmall
SaleSentryQueryInfo
SatelliteSentry
SatelliteSentryQueryInfo
SelectionSentry
SelectionSentry guards Selection entities and their component rows. The SelectionSentry applies to the following classes: Selection, SelectionRow, TextRow, SelectionMemberRow
SelectionSentryQueryInfo
Sentry
Sentry.DataRightCache
Cache holding data rights on different tables. This should only be used internally by the sentries
SentryCollection
Collects zero or more sentries together in an group. Makes it easy to perform aggregated queries across the collection.
SentryIgnorableHelper
SentryPluginAttribute
Attribute used to declare a sentry plug-in. Objects declared with this attribute also needs to implement the interface ISentryPlugin.
SentryPluginQueryTableUpdaterAttribute
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.
SentryPreferenceCache
Caches preferences in the "Rights-*" section. Cache is manually flushed when SoPreference sets a "Rights-" preference value, or every 10 minutes.
SentryQueryAppointmentTableUpdater
SentryQueryAssociateTableUpdater
SentryQueryBinaryObjectableUpdater
SentryQueryContactTableUpdater
SentryQueryDashBoardTableUpdater
SentryQueryDashboardTileTableUpdater
SentryQueryDocDocumentTableUpdater
SentryQueryDocumentTableUpdater
SentryQueryEjMessageTableUpdater
SentryQueryEmailFlowTableUpdater
SentryQueryInfo
Information about a query - like table infos, etc.
SentryQueryInfo<TMainTable>
Class holding TableInfos on behalf of a Sentry implementation. Subclasses contain 'typed' tableinfos (as properties/fields) and 'untyped' tableinfos in an array.
SentryQueryKbEntryTableUpdater
SentryQueryLicenseSatlLinkTableUpdater
SentryQueryPersonTableUpdater
SentryQueryProjectMemberTableUpdater
SentryQueryProjectTableUpdater
SentryQueryQuoteAlternativeTableUpdater
SentryQueryQuoteLineTableUpdater
SentryQueryQuoteTableUpdater
SentryQueryQuoteVersionTableUpdater
SentryQueryRelationsTableUpdater
SentryQueryReplyTemplateTableUpdater
SentryQuerySaleStakeholderTableUpdater
SentryQuerySaleTableUpdater
SentryQuerySatelliteTableUpdater
SentryQuerySelectionMemberTableUpdater
SentryQuerySelectionTableUpdater
SentryQueryTableUpdaterAttribute
This attribute is used to declare a class to be a query updated for a sentry. Such classes have to implement the ISentryQueryTableUpdater interface
SentryQueryTargetAssignmentInfoTableUpdater
SentryQueryTicketLogActionTableUpdater
SentryQueryTicketLogChangeTableUpdater
SentryQueryTicketLogTableUpdater
SentryQueryTicketTableUpdater
SentryQueryUDefFieldTableUpdater
SentryQueryUpdater
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.SentryQueryWorkflowTableUpdater
Sentry<TMainTable>
Summary description for Sentry.
Sentry<TMainTable>.ResourceSymbol
Helper class for identifying resources
TableRight
Wraps a table right together with an explanatory reason. Code can indicate why access is restricted.
TableRights
TargetAssignmentInfoSentry
TargetsSentry guards Targets entities. It is using datarights and visiblefor to make sure you can only see or modify what you should be able to.
TargetAssignmentInfoSentryQueryInfo
TicketSentry
TicketSentry guards Ticket entities and their component rows.
The TicketSentry applies to the following classes: Ticket, TicketRow, TextRow, UDLarge + UDSmall
TicketSentryQueryInfo
UDefFieldQueryInfo
UDefFieldSentry
Sentry for user-defined field definitions
UserGroupCache
Cache holding information about the users (e.g. associates) user groups
VisibleForSentryHelper
Helper class for sentry functionality, to modify SELECT queries so that they include the correct join and restriction
WorkflowSentry
WorkflowSentry guards Workflow entities. It is using visiblefor to make sure you can only see or modify what you should be able to.
WorkflowSentryQueryInfo
Interfaces
ISentryIgnorable
Interface providing mechanisms for temporary ignoring sentry for the current thread.
ISentryPlugin
Interface that has to be implemented by sentry plug-ins.
Sentry plug-ins also needs to be declared with attribute SentryPluginAttribute.
ISentryPluginQueryTableUpdater
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.
ISentryQueryTableUpdater
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
ISoDataLookup is used by the sentry to figure out the values for a particular row. The TableRowsBase row objects, the SoDataReader data reader and SoCommand insert/update/delete commands implement this interface to provide the sentry with data.
Enums
EOwnershipIndex
This is used as an index into a matrix of tablerights when calculating the access rights for an associate.