protected bool CheckReadFileAccess(EntitySchema entitySchema, Guid recordId) { DBSecurityEngine securityEngine = UserConnection.DBSecurityEngine; SchemaRecordRightLevels rights = securityEngine.GetEntitySchemaRecordRightLevel(entitySchema, recordId); return((rights & SchemaRecordRightLevels.CanRead) == SchemaRecordRightLevels.CanRead); }
private bool HasRightsOnRecord(string schemaName, Guid recordId) { SchemaRecordRightLevels rightsOnRecord = UserConnection.DBSecurityEngine.GetEntitySchemaRecordRightLevel(schemaName, recordId); var hasAllRights = rightsOnRecord.HasFlag(SchemaRecordRightLevels.All); var hasReadRights = rightsOnRecord.HasFlag(SchemaRecordRightLevels.CanRead); return(hasAllRights || hasReadRights); }
private bool GetIsRecordLevelRightAllowed(string entitySchemaName, Guid entityId, SchemaRecordRightLevels inspectRightLevel) { if (!_userConnection.DBSecurityEngine.GetIsEntitySchemaAdministratedByRecords(entitySchemaName)) { return(true); } var rightLevel = _userConnection.DBSecurityEngine.GetEntitySchemaRecordRightLevel(entitySchemaName, entityId); return((rightLevel & inspectRightLevel) == inspectRightLevel); }
/// <summary> /// Checks whether current users has read access right for the feed. /// </summary> /// <param name="entitySchemaUId">Feed entity schema unique identifier.</param> /// <param name="primaryColumnValue">Feed unique identifier.</param> private void CheckChannelReadRights(Guid entitySchemaUId, Guid primaryColumnValue) { SchemaRecordRightLevels canReadRight = Terrasoft.Core.DB.SchemaRecordRightLevels.CanRead; ISchemaManagerItem <CoreEntitySchema> schemaItem = UserConnection.EntitySchemaManager.GetItemByUId(entitySchemaUId); SchemaRecordRightLevels schemaRightLevel = DBSecurityEngine.GetEntitySchemaRecordRightLevel(schemaItem.Name, primaryColumnValue); if ((schemaRightLevel & canReadRight) != canReadRight) { throw new SecurityException(new LocalizableString(UserConnection.Workspace.ResourceStorage, "SocialSubscriptionService", "LocalizableStrings.SocialChannelCanNotBeRead.Value")); } }
public bool CheckForecastItemRights(Guid forecastItemId, SchemaRecordRightLevels rightLevel) { bool result = true; DBSecurityEngine dbSecurityEngine = _userConnection.DBSecurityEngine; SchemaRecordRightLevels forecastItemRightLevel = dbSecurityEngine.GetEntitySchemaRecordRightLevel("ForecastItem", forecastItemId); if ((forecastItemRightLevel & rightLevel) != rightLevel) { result = false; } return(result); }
public virtual void DeleteEntitySchemaRecordRightLevel(Guid adminUnitId, int operation, string recordSchemaName, Guid primaryColumnValue) { var rightsSchemaName = GetRecordRightsSchemaDefName(recordSchemaName); var entitySchemaRecordRightOperation = (EntitySchemaRecordRightOperation)operation; SchemaRecordRightLevels currentUserRecordRightLevel = _userConnection.DBSecurityEngine.GetEntitySchemaRecordRightLevel(recordSchemaName, primaryColumnValue); if (!_userConnection.DBSecurityEngine.GetCanExecuteOperation("CanChangeEntitySchemaRecordRight")) { if ((entitySchemaRecordRightOperation == EntitySchemaRecordRightOperation.Read && !(currentUserRecordRightLevel.HasFlag(SchemaRecordRightLevels.CanChangeReadRight))) || (entitySchemaRecordRightOperation == EntitySchemaRecordRightOperation.Edit && !currentUserRecordRightLevel.HasFlag(SchemaRecordRightLevels.CanChangeEditRight)) || (entitySchemaRecordRightOperation == EntitySchemaRecordRightOperation.Delete && !currentUserRecordRightLevel.HasFlag(SchemaRecordRightLevels.CanChangeDeleteRight))) { throw new SecurityException(string.Format(new LocalizableString("Terrasoft.Core", "DBSecurityEngine.Exception.NoDistributingMoreRightsFor.RecordThanYouHave"), recordSchemaName)); } } _userConnection.DBSecurityEngine.ForceDeleteEntitySchemaRecordRightLevel(adminUnitId, entitySchemaRecordRightOperation, recordSchemaName, primaryColumnValue); }
protected bool GetHasSchemaRecordRight(string schemaName, Guid primaryColumnValue, SchemaRecordRightLevels rightLevel) { var schemaRightLevel = GetSchemaRecordRightLevel(schemaName, primaryColumnValue); return((schemaRightLevel & rightLevel) == rightLevel); }