Exemplo n.º 1
0
def ulakbus_permissions():
    """Bu metot Ulakbus'e ait tüm yetkileri birleştirerek döner.

    Returns:
        list: Ulakbus'e ait tüm yetkiler

    """
    from ulakbus.views.reports import ReporterRegistry
    from pyoko.model import model_registry
    from ulakbus.views.personel.crud_hitap import CrudHitap

    default_perms = get_all_permissions()
    hitap_generic_commands = CrudHitap().VIEW_METHODS.keys()
    hitap_permissions = []
    enabled_models = _get_object_menu_models()

    for model in model_registry.get_base_models():
        model_name = model.__name__
        if model_name in enabled_models:
            # no matter if it's available as CRUD or not,
            # we may need a ListBox for any model
            for cmd in hitap_generic_commands:
                if cmd in ['do']:
                    continue
                hitap_permissions.append(("%s.%s" % (model_name, cmd),
                                          "Can %s %s" % (cmd, model_name), ""))
            continue

    report_perms = ReporterRegistry.get_permissions()

    return default_perms + report_perms + hitap_permissions
Exemplo n.º 2
0
    def list_models(self):
        self.output["models"] = [(m.Meta.verbose_name_plural, m.__name__)
                                 for m in model_registry.get_base_models()]

        self.output["app_models"] = [(app, [(m.Meta.verbose_name_plural, m.__name__)
                                            for m in models])
                                 for app, models  in model_registry.get_models_by_apps()]
Exemplo n.º 3
0
 def simple_crud(self):
     results = defaultdict(list)
     for mdl in model_registry.get_base_models():
         results['other'].append({"text": mdl.Meta.verbose_name_plural,
                                  "wf": 'crud',
                                  "model": mdl.__name__,
                                  "kategori": settings.DEFAULT_OBJECT_CATEGORY_NAME})
     return results
Exemplo n.º 4
0
 def simple_crud(self):
     results = defaultdict(list)
     for mdl in model_registry.get_base_models():
         results['other'].append({
             "text":
             mdl.Meta.verbose_name_plural,
             "wf":
             'crud',
             "model":
             mdl.__name__,
             "kategori":
             settings.DEFAULT_OBJECT_CATEGORY_NAME
         })
     return results
Exemplo n.º 5
0
def get_model_permissions(permission_list=None):
    from pyoko.model import model_registry
    from zengine.views.crud import CrudView
    generic_commands = CrudView().VIEW_METHODS.keys()
    permissions = permission_list or []
    for model in model_registry.get_base_models():
        model_name = model.__name__
        permissions.append((model_name, model_name, ""))
        for cmd in generic_commands:
            if cmd in ['do']:
                continue
            permissions.append(("%s.%s" % (model_name, cmd),
                                "Can %s %s" % (cmd, model_name), ""))

    return permissions
Exemplo n.º 6
0
def get_model_permissions(permission_list=None):
    from pyoko.model import model_registry
    from zengine.engine import ALLOWED_CLIENT_COMMANDS
    permissions = permission_list or []
    for model in model_registry.get_base_models():
        model_name = model.__name__
        permissions.append((model_name, model_name, ""))
        for cmd in ALLOWED_CLIENT_COMMANDS:
            if cmd in ['do']:
                continue
            permissions.append(("%s.%s" % (model_name, cmd),
                                "Can %s %s" % (cmd, model_name),
                                ""))

    return permissions
def get_model_permissions(permission_list=None):
    from pyoko.model import model_registry
    from zengine.views.crud import CrudView
    generic_commands = CrudView().VIEW_METHODS.keys()
    permissions = permission_list or []
    for model in model_registry.get_base_models():
        model_name = model.__name__
        permissions.append((model_name, model_name, ""))
        for cmd in generic_commands:
            if cmd in ['do']:
                continue
            permissions.append(("%s.%s" % (model_name, cmd),
                                "Can %s %s" % (cmd, model_name),
                                ""))

    return permissions
Exemplo n.º 8
0
    def test_list_search_add_delete_with_user_model(self):

        # setup workflow
        self.prepare_client('crud')

        # calling the crud view without any model should list available models
        resp = self.client.post()
        resp.raw()
        assert resp.json['models'] == [[m.Meta.verbose_name_plural, m.__name__] for m in
                                       model_registry.get_base_models()]
        model_name = 'User'
        # calling with just model name (without any cmd) equals to cmd="list"
        resp = self.client.post(model=model_name, filters={"username": username})
        assert 'objects' in resp.json
        list_objects = resp.json['objects']
        if list_objects:
            assert list_objects[0]['data']['username'] == username

        resp = self.client.post(model=model_name)
        # count number of records
        num_of_objects = len(resp.json['objects'])

        # add a new employee record, then go to list view (do_list subcmd)
        self.client.post(model=model_name, cmd='add')
        resp = self.client.post(model=model_name,
                                cmd='add',
                                subcmd="do_list",
                                form=dict(username="******", password="******"))

        # we should have 1 more object relative to previous listing
        assert num_of_objects + 1 == len(resp.json['objects'])
        # since we are searching for a just created record, we have to wait
        sleep(1)
        resp = self.client.post(model=model_name, filters={"username": "******"})

        # delete the first object then go to list view
        resp = self.client.post(model=model_name,
                                cmd='delete',
                                subcmd="do_list",
                                object_id=resp.json['objects'][0]['key'])

        # number of objects should be equal to starting point
        assert num_of_objects == len(resp.json['objects'])
Exemplo n.º 9
0
def _get_model_permissions(permission_list=None):
    from pyoko.model import model_registry
    from zengine.views.crud import CrudView
    generic_commands = CrudView().VIEW_METHODS.keys()
    permissions = permission_list or []
    enabled_models = _get_object_menu_models()
    for model in model_registry.get_base_models():
        model_name = model.__name__
        permissions.append((model_name, model_name, ""))
        if model_name not in enabled_models:
            # no matter if it's available as CRUD or not,
            # we may need a ListBox for any model
            permissions.append(("%s.select_list" % model_name,
                                "Listbox for %s" % model_name, ""))
            continue

        for cmd in generic_commands:
            if cmd in ['do']:
                continue
            permissions.append(("%s.%s" % (model_name, cmd),
                                "Can %s %s" % (cmd, model_name), ""))

    return permissions
Exemplo n.º 10
0
    def test_list_add_delete_with_employee_model(self):
        # setup workflow
        self.prepare_client('crud')

        # calling the crud view without any model should list available models
        resp = self.client.post()
        assert resp.json['models'] == [m.__name__ for m in model_registry.get_base_models()]

        # calling with just model name (without any cmd) equals to cmd="list"
        resp = self.client.post(model='Employee')
        assert 'objects' in resp.json

        list_objects = resp.json['objects']
        if list_objects:
            assert list_objects[0]['data']['first_name'] == 'Em1'

        # count number of records
        num_of_objects = len(resp.json['objects'])

        # add a new employee record, then go to list view (do_list subcmd)
        self.client.post(model='Employee', cmd='add')
        resp = self.client.post(model='Employee',
                                cmd='add',
                                subcmd="do_list",
                                form=dict(first_name="Em1", pno="12323121443"))

        # we should have 1 more object relative to previous listing
        assert num_of_objects + 1 == len(resp.json['objects'])

        # delete the first object then go to list view
        resp = self.client.post(model='Employee',
                                cmd='delete',
                                subcmd="do_list",
                                object_id=resp.json['objects'][0]['key'])

        # number of objects should be equal to starting point
        assert num_of_objects == len(resp.json['objects'])
Exemplo n.º 11
0
    def simple_crud():
        """
        Prepares menu entries for auto-generated model CRUD views.
        This is simple version of :attr:`get_crud_menus()` without
        Category support and permission control.
        Just for development purposes.

        Returns:
            Dict of list of dicts (``{'':[{}],}``). Menu entries.

        """
        results = defaultdict(list)
        for mdl in model_registry.get_base_models():
            results['other'].append({
                "text":
                mdl.Meta.verbose_name_plural,
                "wf":
                'crud',
                "model":
                mdl.__name__,
                "kategori":
                settings.DEFAULT_OBJECT_CATEGORY_NAME
            })
        return results
Exemplo n.º 12
0
 def list_models(self):
     self.output["models"] = [m.__name__ for m in model_registry.get_base_models()]