Module: Fiona7

Defined in:
app/models/fiona7/edited_obj.rb,
lib/fiona7/assert.rb,
lib/fiona7/engine.rb,
lib/fiona7/version.rb,
lib/infopark_fiona7.rb,
lib/fiona7/workspace.rb,
lib/fiona7/tasks/task.rb,
lib/fiona7/initializer.rb,
lib/fiona7/mode_switch.rb,
lib/fiona7/type_loader.rb,
lib/fiona7/tasks/loader.rb,
lib/fiona7/facet_builder.rb,
lib/fiona7/scrivito_user.rb,
lib/fiona7/search_engine.rb,
lib/fiona7/type_register.rb,
lib/fiona7/complex_object.rb,
lib/fiona7/table_switcher.rb,
lib/fiona7/version_helper.rb,
lib/fiona7/permitted_mixin.rb,
lib/fiona7/super_id_finder.rb,
lib/fiona7/widget_resolver.rb,
app/models/fiona7/write_obj.rb,
lib/fiona7/current_user_map.rb,
lib/fiona7/in_editable_view.rb,
lib/fiona7/linked_id_finder.rb,
lib/fiona7/widget_gc/marker.rb,
lib/fiona7/blob_id_generator.rb,
lib/fiona7/controller_helper.rb,
lib/fiona7/editing_env_check.rb,
lib/fiona7/mode_switch/views.rb,
lib/fiona7/release_collector.rb,
lib/fiona7/type_synchronizer.rb,
lib/fiona7/json/obj_decorator.rb,
lib/fiona7/json/obj_decorator.rb,
lib/fiona7/temporary_uploader.rb,
app/models/fiona7/released_obj.rb,
lib/fiona7/builder/obj_builder.rb,
lib/fiona7/builder/obj_builder.rb,
lib/fiona7/builder/obj_updater.rb,
lib/fiona7/naive_search_engine.rb,
lib/fiona7/super_object_finder.rb,
lib/fiona7/binary_files_cleaner.rb,
lib/fiona7/obj_classes_from_cms.rb,
lib/fiona7/referenced_id_finder.rb,
lib/fiona7/upload_path_selector.rb,
lib/fiona7/verity_search_engine.rb,
lib/fiona7/attribute_type_mapper.rb,
lib/fiona7/forbidden_obj_classes.rb,
lib/fiona7/json/widget_decorator.rb,
lib/fiona7/mode_switch/composite.rb,
lib/fiona7/prefetch/obj_prefetch.rb,
lib/fiona7/widgetlist_enumerator.rb,
lib/fiona7/attribute_name_mangler.rb,
lib/fiona7/builder/widget_builder.rb,
lib/fiona7/builder/widget_updater.rb,
lib/fiona7/custom_verity_accessor.rb,
lib/fiona7/mode_switch/cms_routes.rb,
lib/fiona7/obj_class_name_mangler.rb,
lib/fiona7/access_permission_check.rb,
lib/fiona7/builder/widget_building.rb,
lib/fiona7/recursive_object_finder.rb,
lib/fiona7/scrivito_patches/binary.rb,
lib/fiona7/tools/attribute_remover.rb,
lib/fiona7/attribute_names_from_cms.rb,
lib/fiona7/attribute_readers/simple.rb,
lib/fiona7/attribute_writers/simple.rb,
lib/fiona7/builder/lazy_blob_copier.rb,
lib/fiona7/obj_class_name_demangler.rb,
lib/fiona7/obj_classes_from_queries.rb,
lib/fiona7/attribute_readers/factory.rb,
lib/fiona7/attribute_writers/factory.rb,
lib/fiona7/builder/obj_class_builder.rb,
lib/fiona7/builder/obj_class_updater.rb,
lib/fiona7/name_and_parent_from_path.rb,
lib/fiona7/permission_volatile_cache.rb,
app/controllers/fiona7/api_controller.rb,
lib/fiona7/json/reverse_obj_decorator.rb,
lib/fiona7/widget_object_id_collector.rb,
lib/fiona7/builder/batch_widget_writer.rb,
lib/fiona7/json/typeless_obj_decorator.rb,
lib/fiona7/widget_gc/garbage_collector.rb,
app/controllers/fiona7/blobs_controller.rb,
app/controllers/fiona7/tasks_controller.rb,
app/models/fiona7/internal_released_obj.rb,
lib/fiona7/attribute_names_from_queries.rb,
lib/fiona7/builder/indirect_blob_builder.rb,
app/controllers/fiona7/release_controller.rb,
app/controllers/fiona7/uploads_controller.rb,
lib/fiona7/attribute_readers/date_as_date.rb,
lib/fiona7/attribute_readers/html_as_html.rb,
lib/fiona7/attribute_writers/date_as_date.rb,
lib/fiona7/attribute_writers/html_as_html.rb,
app/controllers/fiona7/sessions_controller.rb,
app/controllers/fiona7/workflow_controller.rb,
lib/fiona7/builder/container_chain_builder.rb,
lib/fiona7/link_converter/fiona_to_scrivito.rb,
lib/fiona7/link_converter/scrivito_to_fiona.rb,
lib/fiona7/mode_switch/abstract_mode_switch.rb,
lib/fiona7/prefetch/widget_resolver_prefetch.rb,
lib/fiona7/attribute_readers/attribute_reader.rb,
lib/fiona7/attribute_readers/binary_as_binary.rb,
lib/fiona7/attribute_readers/link_as_linklist.rb,
lib/fiona7/attribute_readers/number_as_string.rb,
lib/fiona7/attribute_writers/attribute_writer.rb,
lib/fiona7/attribute_writers/binary_as_binary.rb,
lib/fiona7/attribute_writers/link_as_linklist.rb,
lib/fiona7/attribute_writers/number_as_string.rb,
lib/fiona7/controllers/rest_api/error_handler.rb,
lib/fiona7/widget_gc/sweep_strategies/factory.rb,
lib/fiona7/attribute_readers/multienum_as_text.rb,
lib/fiona7/attribute_writers/multienum_as_text.rb,
lib/fiona7/controllers/rest_api/obj_controller.rb,
lib/fiona7/attribute_readers/binary_as_linklist.rb,
lib/fiona7/attribute_readers/stringlist_as_text.rb,
lib/fiona7/attribute_writers/binary_as_linklist.rb,
lib/fiona7/attribute_writers/stringlist_as_text.rb,
lib/fiona7/controllers/rest_api/blob_controller.rb,
lib/fiona7/attribute_readers/reference_as_string.rb,
lib/fiona7/attribute_writers/reference_as_string.rb,
lib/fiona7/builder/indirect_blob_builder_for_obj.rb,
lib/fiona7/middleware/table_switching_middleware.rb,
lib/fiona7/attribute_readers/linklist_as_linklist.rb,
lib/fiona7/attribute_writers/linklist_as_linklist.rb,
lib/fiona7/middleware/server_detection_middleware.rb,
lib/fiona7/attribute_readers/reference_as_linklist.rb,
lib/fiona7/attribute_readers/referencelist_as_text.rb,
lib/fiona7/attribute_writers/reference_as_linklist.rb,
lib/fiona7/attribute_writers/referencelist_as_text.rb,
lib/fiona7/controllers/rest_api/session_controller.rb,
lib/fiona7/widget_gc/sweep_strategies/revert_sweep.rb,
lib/fiona7/attribute_readers/multienum_as_multienum.rb,
lib/fiona7/attribute_readers/widgetlist_as_linklist.rb,
lib/fiona7/attribute_writers/multienum_as_multienum.rb,
lib/fiona7/attribute_writers/widgetlist_as_linklist.rb,
lib/fiona7/widget_gc/sweep_strategies/archive_sweep.rb,
lib/fiona7/attribute_writers/helpers/html_serializer.rb,
lib/fiona7/attribute_writers/helpers/json_serializer.rb,
lib/fiona7/attribute_writers/helpers/link_serializer.rb,
lib/fiona7/controllers/rest_api/workspace_controller.rb,
app/controllers/fiona7/default_scrivito_cms_controller.rb,
lib/fiona7/attribute_readers/helpers/html_deserializer.rb,
lib/fiona7/attribute_readers/helpers/json_deserializer.rb,
lib/fiona7/attribute_readers/helpers/link_deserializer.rb,
lib/fiona7/attribute_readers/referencelist_as_linklist.rb,
lib/fiona7/attribute_writers/referencelist_as_linklist.rb

Overview

require ‘fiona7/write_obj’

Defined Under Namespace

Modules: AttributeReaders, AttributeWriters, BinaryFilesCleaner, BinaryHandling, Builder, ControllerHelper, Controllers, CurrentUserMap, CurrentUserMapHelper, InEditableView, JSON, LinkConverter, Middleware, ModeSwitch, NameAndParentFromPath, PermittedMixin, Prefetch, Tasks, Tools, WidgetGc Classes: AccessPermissionCheck, ApiController, Assert, AttributeNameMangler, AttributeNamesFromCms, AttributeNamesFromQueries, AttributeTypeMapper, BlobIdGenerator, BlobsController, ComplexObject, Config, CustomVerityAccessor, DefaultScrivitoCmsController, EditedObj, EditingEnvCheck, Engine, ErrorHandler, FacetBuilder, Features, ForbiddenObjClasses, Initializer, InternalReleasedObj, LinkedIdFinder, NaiveSearchEngine, ObjClassNameDemangler, ObjClassNameMangler, ObjClassesFromCms, ObjClassesFromQueries, PermissionVolatileCache, RecursiveObjectFinder, ReferencedIdFinder, ReleaseCollector, ReleaseController, ReleasedObj, ScrivitoUser, SearchEngine, SessionsController, SuperIdFinder, SuperObjectFinder, TableSwitcher, TasksController, TemporaryUploader, TypeLoader, TypeRegister, TypeSynchronizer, TypeSystemError, UploadPathSelector, UploadsController, VeritySearchEngine, VersionHelper, WidgetObjectIdCollector, WidgetResolver, WidgetlistEnumerator, WorkflowController, Workspace, WriteObj

Constant Summary collapse

VERSION =
"1.6.1.1.5"

Class Method Summary collapse

Class Method Details

.configure(&block) ⇒ Object



208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
# File 'lib/fiona7/engine.rb', line 208

def self.configure(&block)
  self.config = Config.new.tap do |config|
    yield config

    Reactor::Configuration.xml_access = {
      host: config.host,
      port: config.port,
      id: 'f7',
      username: config.username,
      secret: config.secret
    }

    Fiona7::VeritySearchEngine::VeritySearchRequest.configured_host = config.host
    Fiona7::VeritySearchEngine::VeritySearchRequest.configured_port = config.port.to_i + 3

    Fiona7.root = config.username

    Fiona7.mode = config.mode
    if Fiona7. = !config.root_mode
      Scrivito.configure do |config|
        config.editing_auth do |env|
          request  = ActionDispatch::Request.new(env)
          session  = request.session
          rsession = Reactor::SessionHelper::RsessionHelper.from_session(session)
          if rsession && rsession.user?
            Fiona7::ScrivitoUser.define(rsession.user)
          end
        end

        config.find_user do |user_id|
          begin
            user = Reactor::Cache::User.instance.get(user_id)
            Fiona7::ScrivitoUser.define(user)
          rescue Reactor::Cm::XmlSingleRequestError => e
            # this is the error code for entry (possibly user) not found
            # other errors we want to pass on (unauthorized, etc)
            raise e unless e.message =~ /060001/
          end
        end
      end
    end

    if config.mode == :standalone
      RailsConnector::Configuration.mode = :editor
    end

    RailsConnector::Configuration.instance_name = config.instance

    Scrivito::Configuration.tenant = config.instance
  end
end

.facetting_enabled?Boolean

Returns:

  • (Boolean)


185
186
187
# File 'lib/fiona7/engine.rb', line 185

def self.facetting_enabled?
  !!self.read_config.features.facetting_enabled
end

.read_configObject



204
205
206
# File 'lib/fiona7/engine.rb', line 204

def self.read_config
  self.config || raise("Fiona7 gem not configured! Please create `config/initializers/fiona7.rb` and use Fiona7.configure")
end

.run_callbacks(callback, *params) ⇒ Object



165
166
167
168
169
170
171
172
173
174
175
# File 'lib/fiona7/engine.rb', line 165

def self.run_callbacks(callback, *params)
  (self.callbacks[callback] || []).each do |callback_proc|
    begin
      callback_proc.call(*params)
    rescue => e
      Rails.logger.error("An error occured when running a callback: #{callback} with #{params.inspect}")
      Rails.logger.error("#{e.class}: #{e.message}")
      Rails.logger.error(e.backtrace[0,30].join("\n"))
    end
  end
end

.widget_gc_strategyObject



177
178
179
# File 'lib/fiona7/engine.rb', line 177

def self.widget_gc_strategy
  self.read_config.features.widget_gc_strategy
end

.workflows_enabled?Boolean

Returns:

  • (Boolean)


181
182
183
# File 'lib/fiona7/engine.rb', line 181

def self.workflows_enabled?
  !!self.read_config.features.workflows_enabled
end