Beispiel #1
0
def extension_migrations_list():
  ret = []
  for extension_module in get_extension_modules():
    migrations_dir = extension_migrations_dir(extension_module)
    if migrations_dir:
      ret.append(migrations_dir)
  return ret
Beispiel #2
0
def extension_migrations_list():
  ret = []
  for extension_module in get_extension_modules():
    migrations_dir = get_extension_migrations_dir(extension_module)
    if os.path.exists(migrations_dir):
      ret.append(migrations_dir)
  return ret
def get_extension_mappings(object_type, related_type, related_ids):
  queries = []
  for extension in get_extension_modules():
    get_ids = getattr(extension, "contributed_get_ids_related_to", None)
    if callable(get_ids):
      queries.append(get_ids(object_type, related_type, related_ids))
  return queries
Beispiel #4
0
def lookup_contributions(rolename):
  extension_modules = get_extension_modules()
  contributions = {}
  for extension_module in extension_modules:
    ext_contributions = getattr(extension_module, "ROLE_CONTRIBUTIONS", None)
    if ext_contributions:
      ext_role_contributions = ext_contributions.contributions_for(rolename)
      contribute_role_permissions(contributions, ext_role_contributions)
  return contributions
Beispiel #5
0
def lookup_role_implications(rolename, context_implication):
  extension_modules = get_extension_modules()
  role_implications = []
  for extension_module in extension_modules:
    ext_implications = getattr(extension_module, "ROLE_IMPLICATIONS", None)
    if ext_implications:
      role_implications.extend(
          ext_implications.implications_for(rolename, context_implication))
  return role_implications
Beispiel #6
0
def init_hooks():
  """Initialize main and extensions related SQLAlchemy hooks."""
  from ggrc.extensions import get_extension_modules
  from ggrc.models import hooks

  hooks.init_hooks()
  for extension_module in get_extension_modules():
    ext_init_hooks = getattr(extension_module, 'init_hooks', None)
    if ext_init_hooks:
      ext_init_hooks()
Beispiel #7
0
def all_services():
  from ggrc.extensions import get_extension_modules

  services = contributed_services()

  for extension_module in get_extension_modules():
    contributions = getattr(extension_module, 'contributed_services', None)
    if contributions:
      if callable(contributions):
        contributions = contributions()
      services.extend(contributions)
  return services
Beispiel #8
0
def get_config_json():
  """Get public app config"""
  with benchmark("Get config JSON"):
    public_config = dict(app.config.public_config)
    public_config.update(get_public_config())

    for extension_module in get_extension_modules():
      if hasattr(extension_module, 'get_public_config'):
        public_config.update(
            extension_module.get_public_config(get_current_user()))

    return json.dumps(public_config)
Beispiel #9
0
def all_object_views():
  """Gets all object views defined in the application"""
  views = contributed_object_views()

  for extension_module in get_extension_modules():
    contributions = getattr(extension_module, "contributed_object_views", None)
    if contributions:
      if callable(contributions):
        contributions = contributions()
      views.extend(contributions)

  return views
Beispiel #10
0
def lookup_declarations(declarations={}):
  if len(declarations) == 0:
    extension_modules = get_extension_modules()
    for extension_module in extension_modules:
      ext_declarations = getattr(extension_module, "ROLE_DECLARATIONS", None)
      if ext_declarations:
        declarations.update(ext_declarations.roles())
    if len(declarations) == 0:
      declarations[None] = None
  if None in declarations:
    return {}
  else:
    return declarations
Beispiel #11
0
def init_all_views(app_):
    """Inits all views defined in the core module and submodules"""
    for entry in all_object_views():
        entry.service_class.add_to(app_,
                                   '/{0}'.format(entry.url),
                                   entry.model_class,
                                   decorators=(login_required, ))

    init_extra_views(app_)
    for extension_module in get_extension_modules():
        ext_extra_views = getattr(extension_module, "init_extra_views", None)
        if ext_extra_views:
            ext_extra_views(app_)
Beispiel #12
0
def all_object_views():
    """Gets all object views defined in the application"""
    views = contributed_object_views()

    for extension_module in get_extension_modules():
        contributions = getattr(extension_module, "contributed_object_views",
                                None)
        if contributions:
            if callable(contributions):
                contributions = contributions()
            views.extend(contributions)

    return views
Beispiel #13
0
def all_services():
    """Get services from all modules."""
    from ggrc.extensions import get_extension_modules

    services = contributed_services()

    for extension_module in get_extension_modules():
        contributions = getattr(extension_module, 'contributed_services', None)
        if contributions:
            if callable(contributions):
                contributions = contributions()
            services.extend(contributions)
    return services
Beispiel #14
0
def init_all_models(app):
  """Register all GGRC models services with the Flask application ``app``."""

  from ggrc.extensions import get_extension_modules

  # Usually importing the module is enough, but just in case, also invoke
  # ``init_models``
  init_models(app)
  for extension_module in get_extension_modules():
    ext_init_models = getattr(extension_module, 'init_models', None)
    if ext_init_models:
      ext_init_models(app)
  init_hooks()
def lookup_declarations(declarations={}):
    if len(declarations) == 0:
        extension_modules = get_extension_modules()
        for extension_module in extension_modules:
            ext_declarations = getattr(extension_module, "ROLE_DECLARATIONS",
                                       None)
            if ext_declarations:
                declarations.update(ext_declarations.roles())
        if len(declarations) == 0:
            declarations[None] = None
    if None in declarations:
        return {}
    else:
        return declarations
Beispiel #16
0
def init_all_views(app_):
  """Inits all views defined in the core module and submodules"""
  for entry in all_object_views():
    entry.service_class.add_to(
        app_,
        '/{0}'.format(entry.url),
        entry.model_class,
        decorators=(login_required,)
    )

  init_extra_views(app_)
  for extension_module in get_extension_modules():
    ext_extra_views = getattr(extension_module, "init_extra_views", None)
    if ext_extra_views:
      ext_extra_views(app_)
Beispiel #17
0
def get_all_column_handlers():
  """Search through all enabled modules for their contributed column handlers.

  Returns:
    extension_handlers (dict): dict of all extension handlers
  """
  extension_handlers = GGRC_COLUMN_HANDLERS
  for extension_module in get_extension_modules():
    contributed_handlers = getattr(
        extension_module, "contributed_column_handlers", None)
    if callable(contributed_handlers):
      extension_handlers.update(contributed_handlers())
    elif isinstance(contributed_handlers, dict):
      extension_handlers.update(contributed_handlers)
  return extension_handlers
Beispiel #18
0
def _get_types(attr):
  """Get contributed attribute types.

  Args:
    attr: String containing selected type. Either contributed_importables or
      contributed_exportables.
  """
  res = {}
  for extension_module in get_extension_modules():
    contributed = getattr(extension_module, attr, None)
    if callable(contributed):
      res.update(contributed())
    elif isinstance(contributed, dict):
      res.update(contributed)
  return res
Beispiel #19
0
def _get_types(attr):
  """Get contributed attribute types.

  Args:
    attr: String containing selected type. Either contributed_importables or
      contributed_exportables.
  """
  res = {}
  for extension_module in get_extension_modules():
    contributed = getattr(extension_module, attr, None)
    if callable(contributed):
      res.update(contributed())
    elif isinstance(contributed, dict):
      res.update(contributed)
  return res
def get_extensions_column_handlers():
    """Search through all enabled modules for their contributed column handlers.

  Returns:
    result_handlers (dict): dict of all extension handlers
  """
    result_handlers = deepcopy(_COLUMN_HANDLERS)
    for extension_module in get_extension_modules():
        extension_handlers = getattr(extension_module, EXTENSION_HANDLERS_ATTR,
                                     None)
        if callable(extension_handlers):
            extension_handlers = extension_handlers()
        if isinstance(extension_handlers, dict):
            for key, value_dict in extension_handlers.iteritems():
                result_handlers[key] = result_handlers.get(key, {})
                result_handlers[key].update(value_dict)
    return result_handlers
def get_extensions_column_handlers():
  """Search through all enabled modules for their contributed column handlers.

  Returns:
    result_handlers (dict): dict of all extension handlers
  """
  result_handlers = deepcopy(_COLUMN_HANDLERS)
  for extension_module in get_extension_modules():
    extension_handlers = getattr(
        extension_module, EXTENSION_HANDLERS_ATTR, None)
    if callable(extension_handlers):
      extension_handlers = extension_handlers()
    if isinstance(extension_handlers, dict):
      for key, value_dict in extension_handlers.iteritems():
        result_handlers[key] = result_handlers.get(key, {})
        result_handlers[key].update(value_dict)
  return result_handlers
Beispiel #22
0
def init_all_services(app):
  """Register all GGRC REST services with the Flask application ``app``."""
  from ggrc.extensions import get_extension_modules
  from ggrc.login import login_required

  for entry in all_services():
    entry.service_class.add_to(
        app,
        '/api/{0}'.format(entry.name),
        entry.model_class,
        decorators=(login_required,),
    )

  init_extra_services(app)
  for extension_module in get_extension_modules():
    ext_extra_services = getattr(extension_module, 'init_extra_services', None)
    if ext_extra_services:
      ext_extra_services(app)
Beispiel #23
0
def init_all_services(app):
  """Register all GGRC REST services with the Flask application ``app``."""
  from ggrc.extensions import get_extension_modules
  from ggrc.login import login_required

  for entry in all_services():
    entry.service_class.add_to(
        app,
        '/api/{0}'.format(entry.name),
        entry.model_class,
        decorators=(login_required,),
    )

  init_extra_services(app)
  for extension_module in get_extension_modules():
    ext_extra_services = getattr(extension_module, 'init_extra_services', None)
    if ext_extra_services:
      ext_extra_services(app)
Beispiel #24
0
def init_extension_blueprints(app_):
    for extension_module in extensions.get_extension_modules():
        if hasattr(extension_module, 'blueprint'):
            app_.register_blueprint(extension_module.blueprint)
Beispiel #25
0
def init_extension_blueprints(app_):
  for extension_module in extensions.get_extension_modules():
    if hasattr(extension_module, 'blueprint'):
      app_.register_blueprint(extension_module.blueprint)