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);
        }
Example #3
0
        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);
        }
Example #4
0
        /// <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"));
            }
        }
Example #5
0
        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);
        }