public bool IsExisting(RoleAccessControlObject roleAccessControlObject)
 {
     using (var myAdapter = PersistenceLayer.GetDataAccessAdapter())
     {
         var linqMetaData = new LinqMetaData(myAdapter);
         return(linqMetaData.RoleAccessControlObject.Any(r => r.RoleId == roleAccessControlObject.Role.Id &&
                                                         r.AccessControlObjectId == roleAccessControlObject.AccessControlObject.Id));
     }
 }
        public void DeleteRoleAccessControlObject(RoleAccessControlObject roleAccessControlObject)
        {
            using (var myAdapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var relationPredicateBucket = new RelationPredicateBucket(RoleAccessControlObjectFields.AccessControlObjectId == roleAccessControlObject.AccessControlObject.Id);
                relationPredicateBucket.PredicateExpression.AddWithAnd(RoleAccessControlObjectFields.RoleId == roleAccessControlObject.Role.Id);
                relationPredicateBucket.PredicateExpression.AddWithAnd(RoleAccessControlObjectFields.ScopeId == (long)roleAccessControlObject.DataScope);
                relationPredicateBucket.PredicateExpression.AddWithAnd(RoleAccessControlObjectFields.PermissionTypeId == (long)roleAccessControlObject.PermissionType);

                myAdapter.DeleteEntitiesDirectly(typeof(RoleAccessControlObjectEntity), relationPredicateBucket);
            }
        }
        public RoleAccessControlObject SaveRoleAccessControlObject(RoleAccessControlObject roleAccessControlObject)
        {
            using (var adapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var entity = Mapper.Map <RoleAccessControlObject, RoleAccessControlObjectEntity>(roleAccessControlObject);

                entity.IsNew = !IsExisting(roleAccessControlObject);

                if (!adapter.SaveEntity(entity, true, true))
                {
                    throw new PersistenceFailureException();
                }
                return(roleAccessControlObject);
            }
        }
Example #4
0
        private void SaveWithoutUpdatingChildRole(RoleAccessControlObjectEditModel model)
        {
            var roleAccessControlObjects = _roleAccessControlObjectRepository.GetRoleAccessControlObjectByRoleId(model.RoleId).ToArray();

            var objsToSave   = GetSelectedObjects(model.AccessControlObjects);
            var objAccessIds = objsToSave.Select(x => x.FirstValue).ToArray();
            var objsToDelete = roleAccessControlObjects.Where(x => !objAccessIds.Contains(x.AccessControlObject.Id)).ToArray();


            foreach (RoleAccessControlObject roleAccessControlObject in objsToDelete)
            {
                roleAccessControlObject.PermissionType = PermissionType.Deny;
                _roleAccessControlObjectRepository.SaveRoleAccessControlObject(roleAccessControlObject);
                //_roleAccessControlObjectRepository.DeleteRoleAccessControlObject(roleAccessControlObject);
            }

            foreach (var item in objsToSave)
            {
                var obj = roleAccessControlObjects.SingleOrDefault(x => x.AccessControlObject.Id == item.FirstValue);

                if (obj != null)
                {
                    obj.DataScope      = (DataScope)item.SecondValue;
                    obj.PermissionType = PermissionType.Allow;

                    _roleAccessControlObjectRepository.SaveRoleAccessControlObject(obj);
                }
                else
                {
                    obj = new RoleAccessControlObject
                    {
                        AccessControlObject = _accessControlObjectRepository.GetAccessControlObjectById(item.FirstValue),
                        DataScope           = (DataScope)item.SecondValue,
                        Role           = new Role(model.RoleId),
                        PermissionType = PermissionType.Allow
                    };

                    _roleAccessControlObjectRepository.SaveRoleAccessControlObject(obj);
                }
            }
        }