示例#1
0
    def handle(self, *args, **options):
        """Command entry point."""
        load_core_settings()

        if not User.objects.filter(is_superuser=True).count():
            admin = User(username="******", is_superuser=True)
            admin.set_password("password")
            admin.save()
            ObjectAccess.objects.create(user=admin,
                                        content_object=admin,
                                        is_owner=True)

        exts_pool.load_all()

        superadmin = User.objects.filter(is_superuser=True).first()
        groups = PERMISSIONS.keys() + [
            role[0] for role in events.raiseQueryEvent("GetExtraRoles",
                                                       superadmin, None)
        ]
        for groupname in groups:
            group, created = Group.objects.get_or_create(name=groupname)
            permissions = (
                PERMISSIONS.get(groupname, []) +
                events.raiseQueryEvent("GetExtraRolePermissions", groupname))
            if not permissions:
                continue
            add_permissions_to_group(group, permissions)

        for extname in exts_pool.extensions.keys():
            extension = exts_pool.get_extension(extname)
            extension.load_initial_data()
            events.raiseEvent("InitialDataLoaded", extname)
示例#2
0
    def handle(self, *args, **options):
        """Command entry point."""
        extensions.exts_pool.load_all()

        if not models.User.objects.filter(is_superuser=True).count():
            admin = models.User(username=options["admin_username"],
                                is_superuser=True)
            admin.set_password("password")
            admin.save()
            models.ObjectAccess.objects.create(user=admin,
                                               content_object=admin,
                                               is_owner=True)

        groups = list(constants.PERMISSIONS.keys())
        for groupname in groups:
            group, created = Group.objects.get_or_create(name=groupname)
            results = signals.extra_role_permissions.send(
                sender=self.__class__, role=groupname)
            permissions = constants.PERMISSIONS.get(groupname, [])
            if results:
                permissions += reduce(lambda a, b: a + b,
                                      [result[1] for result in results])
            if not permissions:
                continue
            add_permissions_to_group(group, permissions)

        for extname in list(extensions.exts_pool.extensions.keys()):
            extension = extensions.exts_pool.get_extension(extname)
            extension.load_initial_data()
            signals.initial_data_loaded.send(sender=self.__class__,
                                             extname=extname)

        if options["extra_fixtures"]:
            from modoboa.admin import factories
            factories.populate_database()
示例#3
0
    def handle(self, *args, **options):
        """Command entry point."""
        load_core_settings()

        if not User.objects.filter(is_superuser=True).count():
            admin = User(username="******", is_superuser=True)
            admin.set_password("password")
            admin.save()
            ObjectAccess.objects.create(
                user=admin, content_object=admin, is_owner=True)

        exts_pool.load_all()

        superadmin = User.objects.filter(is_superuser=True).first()
        groups = PERMISSIONS.keys() + [
            role[0] for role
            in events.raiseQueryEvent("GetExtraRoles", superadmin, None)
        ]
        for groupname in groups:
            group, created = Group.objects.get_or_create(name=groupname)
            permissions = (
                PERMISSIONS.get(groupname, []) +
                events.raiseQueryEvent("GetExtraRolePermissions", groupname)
            )
            if not permissions:
                continue
            add_permissions_to_group(group, permissions)

        for extname in exts_pool.extensions.keys():
            extension = exts_pool.get_extension(extname)
            extension.load_initial_data()
            events.raiseEvent("InitialDataLoaded", extname)
示例#4
0
    def handle(self, *args, **options):
        """Command entry point."""
        extensions.exts_pool.load_all()

        if not models.User.objects.filter(is_superuser=True).count():
            admin = models.User(
                username=options["admin_username"], is_superuser=True)
            admin.set_password("password")
            admin.save()
            models.ObjectAccess.objects.create(
                user=admin, content_object=admin, is_owner=True)

        groups = list(constants.PERMISSIONS.keys())
        for groupname in groups:
            group, created = Group.objects.get_or_create(name=groupname)
            results = signals.extra_role_permissions.send(
                sender=self.__class__, role=groupname)
            permissions = constants.PERMISSIONS.get(groupname, [])
            if results:
                permissions += reduce(
                    lambda a, b: a + b, [result[1] for result in results])
            if not permissions:
                continue
            add_permissions_to_group(group, permissions)

        for extname in list(extensions.exts_pool.extensions.keys()):
            extension = extensions.exts_pool.get_extension(extname)
            extension.load_initial_data()
            signals.initial_data_loaded.send(
                sender=self.__class__, extname=extname)

        if options["extra_fixtures"]:
            from modoboa.admin import factories
            factories.populate_database()
示例#5
0
def init_limits_dependant_features():
    """Custom initialization if the limits extension activated.

    We mainly define extra permissions.
    """
    add_permissions_to_group(
        "Resellers", [("radicale", "usercalendar", "add_usercalendar"),
                      ("radicale", "usercalendar", "change_usercalendar"),
                      ("radicale", "usercalendar", "delete_usercalendar"),
                      ("radicale", "sharedcalendar", "add_sharedcalendar"),
                      ("radicale", "sharedcalendar", "change_sharedcalendar"),
                      ("radicale", "sharedcalendar", "delete_sharedcalendar")])
示例#6
0
 def init(self):
     """Plugin initialization.
     """
     add_permissions_to_group(
         "DomainAdmins",
         [("radicale", "usercalendar", "add_usercalendar"),
          ("radicale", "usercalendar", "change_usercalendar"),
          ("radicale", "usercalendar", "delete_usercalendar"),
          ("radicale", "sharedcalendar", "add_sharedcalendar"),
          ("radicale", "sharedcalendar", "change_sharedcalendar"),
          ("radicale", "sharedcalendar", "delete_sharedcalendar")])
     if exts_pool.is_extension_enabled('limits'):
         init_limits_dependant_features()
示例#7
0
 def init(self):
     """Plugin initialization.
     """
     add_permissions_to_group(
         "DomainAdmins",
         [("radicale", "usercalendar", "add_usercalendar"),
          ("radicale", "usercalendar", "change_usercalendar"),
          ("radicale", "usercalendar", "delete_usercalendar"),
          ("radicale", "sharedcalendar", "add_sharedcalendar"),
          ("radicale", "sharedcalendar", "change_sharedcalendar"),
          ("radicale", "sharedcalendar", "delete_sharedcalendar")]
     )
     if exts_pool.is_extension_enabled('limits'):
         init_limits_dependant_features()
示例#8
0
def init_limits_dependant_features():
    """Custom initialization if the limits extension activated.

    We mainly define extra permissions.
    """
    add_permissions_to_group(
        "Resellers",
        [("radicale", "usercalendar", "add_usercalendar"),
         ("radicale", "usercalendar", "change_usercalendar"),
         ("radicale", "usercalendar", "delete_usercalendar"),
         ("radicale", "sharedcalendar", "add_sharedcalendar"),
         ("radicale", "sharedcalendar", "change_sharedcalendar"),
         ("radicale", "sharedcalendar", "delete_sharedcalendar")]
    )
示例#9
0
    def handle(self, *args, **options):
        """Command entry point."""
        if not models.User.objects.filter(is_superuser=True).count():
            admin = models.User(
                username=options["admin_username"], is_superuser=True)
            admin.set_password("password")
            admin.save()
            models.ObjectAccess.objects.create(
                user=admin, content_object=admin, is_owner=True)

        lc = models.LocalConfig.objects.first()
        condition = (
            "core" not in lc._parameters or
            "secret_key" not in lc._parameters["core"])
        if condition:
            lc.parameters.set_value("secret_key", random_key())
            lc.save()

        for service_name in ["relay", "smtp"]:
            relay_models.Service.objects.get_or_create(name=service_name)

        extensions.exts_pool.load_all()

        groups = list(constants.PERMISSIONS.keys())
        for groupname in groups:
            group, created = Group.objects.get_or_create(name=groupname)
            results = signals.extra_role_permissions.send(
                sender=self.__class__, role=groupname)
            permissions = (
                constants.PERMISSIONS.get(groupname, []) +
                reduce(lambda a, b: a + b, [result[1] for result in results])
            )
            if not permissions:
                continue
            add_permissions_to_group(group, permissions)

        for extname in list(extensions.exts_pool.extensions.keys()):
            extension = extensions.exts_pool.get_extension(extname)
            extension.load_initial_data()
            signals.initial_data_loaded.send(
                sender=self.__class__, extname=extname)

        if options["extra_fixtures"]:
            from modoboa.admin import factories
            factories.populate_database()
示例#10
0
    def handle(self, *args, **options):
        """Command entry point."""
        if not models.User.objects.filter(is_superuser=True).count():
            admin = models.User(
                username=options["admin_username"], is_superuser=True)
            admin.set_password("password")
            admin.save()
            models.ObjectAccess.objects.create(
                user=admin, content_object=admin, is_owner=True)

        lc = models.LocalConfig.objects.first()
        secret_key = lc.parameters.get_value("secret_key")
        if not secret_key:
            lc.parameters.set_value("secret_key", random_key())
            lc.save()

        for service_name in ["relay", "smtp"]:
            relay_models.Service.objects.get_or_create(name=service_name)

        exts_pool.load_all()

        superadmin = models.User.objects.filter(is_superuser=True).first()
        groups = PERMISSIONS.keys() + [
            role[0] for role
            in events.raiseQueryEvent("GetExtraRoles", superadmin, None)
        ]
        for groupname in groups:
            group, created = Group.objects.get_or_create(name=groupname)
            permissions = (
                PERMISSIONS.get(groupname, []) +
                events.raiseQueryEvent("GetExtraRolePermissions", groupname)
            )
            if not permissions:
                continue
            add_permissions_to_group(group, permissions)

        for extname in exts_pool.extensions.keys():
            extension = exts_pool.get_extension(extname)
            extension.load_initial_data()
            events.raiseEvent("InitialDataLoaded", extname)

        if options["extra_fixtures"]:
            from modoboa.admin import factories
            factories.populate_database()
示例#11
0
    def handle(self, *args, **options):
        """Command entry point."""
        if not models.User.objects.filter(is_superuser=True).count():
            admin = models.User(username=options["admin_username"],
                                is_superuser=True)
            admin.set_password("password")
            admin.save()
            models.ObjectAccess.objects.create(user=admin,
                                               content_object=admin,
                                               is_owner=True)

        lc = models.LocalConfig.objects.first()
        secret_key = lc.parameters.get_value("secret_key")
        if not secret_key:
            lc.parameters.set_value("secret_key", random_key())
            lc.save()

        for service_name in ["relay", "smtp"]:
            relay_models.Service.objects.get_or_create(name=service_name)

        exts_pool.load_all()

        superadmin = models.User.objects.filter(is_superuser=True).first()
        groups = PERMISSIONS.keys() + [
            role[0] for role in events.raiseQueryEvent("GetExtraRoles",
                                                       superadmin, None)
        ]
        for groupname in groups:
            group, created = Group.objects.get_or_create(name=groupname)
            permissions = (
                PERMISSIONS.get(groupname, []) +
                events.raiseQueryEvent("GetExtraRolePermissions", groupname))
            if not permissions:
                continue
            add_permissions_to_group(group, permissions)

        for extname in exts_pool.extensions.keys():
            extension = exts_pool.get_extension(extname)
            extension.load_initial_data()
            events.raiseEvent("InitialDataLoaded", extname)

        if options["extra_fixtures"]:
            from modoboa.admin import factories
            factories.populate_database()
示例#12
0
    def handle(self, *args, **options):
        """Command entry point."""
        load_core_settings()
        load_admin_settings()
        load_limits_settings()

        if not User.objects.filter(is_superuser=True).count():
            admin = User(username="******", is_superuser=True)
            admin.set_password("password")
            admin.save()
            ObjectAccess.objects.create(
                user=admin, content_object=admin, is_owner=True)

        param_name = "core.SECRET_KEY"
        qset = lib_models.Parameter.objects.filter(name=param_name)
        if not qset.exists():
            lib_models.Parameter.objects.create(
                name=param_name, value=random_key())

        for service_name in ['relay', 'smtp']:
            relay_models.Service.objects.get_or_create(name=service_name)

        exts_pool.load_all()

        superadmin = User.objects.filter(is_superuser=True).first()
        groups = PERMISSIONS.keys() + [
            role[0] for role
            in events.raiseQueryEvent("GetExtraRoles", superadmin, None)
        ]
        for groupname in groups:
            group, created = Group.objects.get_or_create(name=groupname)
            permissions = (
                PERMISSIONS.get(groupname, []) +
                events.raiseQueryEvent("GetExtraRolePermissions", groupname)
            )
            if not permissions:
                continue
            add_permissions_to_group(group, permissions)

        for extname in exts_pool.extensions.keys():
            extension = exts_pool.get_extension(extname)
            extension.load_initial_data()
            events.raiseEvent("InitialDataLoaded", extname)
示例#13
0
    def handle(self, *args, **options):
        """Command entry point."""
        load_core_settings()
        load_admin_settings()
        load_limits_settings()

        if not User.objects.filter(is_superuser=True).count():
            admin = User(username="******", is_superuser=True)
            admin.set_password("password")
            admin.save()
            ObjectAccess.objects.create(user=admin,
                                        content_object=admin,
                                        is_owner=True)

        param_name = "core.SECRET_KEY"
        qset = lib_models.Parameter.objects.filter(name=param_name)
        if not qset.exists():
            lib_models.Parameter.objects.create(name=param_name,
                                                value=random_key())

        for service_name in ['relay', 'smtp']:
            relay_models.Service.objects.get_or_create(name=service_name)

        exts_pool.load_all()

        superadmin = User.objects.filter(is_superuser=True).first()
        groups = PERMISSIONS.keys() + [
            role[0] for role in events.raiseQueryEvent("GetExtraRoles",
                                                       superadmin, None)
        ]
        for groupname in groups:
            group, created = Group.objects.get_or_create(name=groupname)
            permissions = (
                PERMISSIONS.get(groupname, []) +
                events.raiseQueryEvent("GetExtraRolePermissions", groupname))
            if not permissions:
                continue
            add_permissions_to_group(group, permissions)

        for extname in exts_pool.extensions.keys():
            extension = exts_pool.get_extension(extname)
            extension.load_initial_data()
            events.raiseEvent("InitialDataLoaded", extname)
示例#14
0
    def init(self):
        from modoboa.core.models import User
        from modoboa.extensions.admin.models import Domain

        ct = ContentType.objects.get(app_label="admin", model="domain")
        dagrp = Group.objects.get(name="DomainAdmins")

        grp = Group(name="Resellers")
        grp.save()
        grp.permissions.add(*dagrp.permissions.all())

        ct = ContentType.objects.get_for_model(Domain)
        add_permissions_to_group("Resellers",
                                 [("admin", "domain", "view_domains"),
                                  ("admin", "domain", "add_domain"),
                                  ("admin", "domain", "change_domain"),
                                  ("admin", "domain", "delete_domain")])

        for user in User.objects.filter(groups__name='DomainAdmins'):
            try:
                controls.create_pool(user)
            except IntegrityError:
                pass
示例#15
0
文件: __init__.py 项目: JHei/modoboa
    def init(self):
        from modoboa.core.models import User
        from modoboa.extensions.admin.models import Domain

        ct = ContentType.objects.get(app_label="admin", model="domain")
        dagrp = Group.objects.get(name="DomainAdmins")

        grp = Group(name="Resellers")
        grp.save()
        grp.permissions.add(*dagrp.permissions.all())

        ct = ContentType.objects.get_for_model(Domain)
        add_permissions_to_group(
            "Resellers", [("admin", "domain", "view_domains"),
                          ("admin", "domain", "add_domain"),
                          ("admin", "domain", "change_domain"),
                          ("admin", "domain", "delete_domain")]
        )

        for user in User.objects.filter(groups__name='DomainAdmins'):
            try:
                controls.create_pool(user)
            except IntegrityError:
                pass