def set_default_action_to_existing_perms(apps, schema_editor):
    from orgs.utils import set_to_root_org
    from ..models import Action
    set_to_root_org()
    perm_model = apps.get_model('perms', 'AssetPermission')
    db_alias = schema_editor.connection.alias
    perms = perm_model.objects.using(db_alias).all()
    default_action = Action.get_action_all()
    for perm in perms:
        perm.actions.add(default_action.id)
예제 #2
0
def update_or_create_ansible_task(
        task_name, hosts, tasks, created_by,
        interval=None, crontab=None, is_periodic=False,
        callback=None, pattern='all', options=None,
        run_as_admin=False, run_as=None, become_info=None,
    ):
    if not hosts or not tasks or not task_name:
        return
    set_to_root_org()
    defaults = {
        'name': task_name,
        'interval': interval,
        'crontab': crontab,
        'is_periodic': is_periodic,
        'callback': callback,
        'created_by': created_by,
    }

    created = False
    task, ok = Task.objects.update_or_create(
        defaults=defaults, name=task_name, created_by=created_by
    )
    adhoc = task.get_latest_adhoc()
    new_adhoc = AdHoc(task=task, pattern=pattern,
                      run_as_admin=run_as_admin,
                      run_as=run_as)
    new_adhoc.tasks = tasks
    new_adhoc.options = options
    new_adhoc.become = become_info

    hosts_same = True
    if adhoc:
        old_hosts = set([str(asset.id) for asset in adhoc.hosts.all()])
        new_hosts = set([str(asset.id) for asset in hosts])
        hosts_same = old_hosts == new_hosts

    if not adhoc or adhoc != new_adhoc or not hosts_same:
        logger.debug(_("Update task content: {}").format(task_name))
        new_adhoc.save()
        new_adhoc.hosts.set(hosts)
        task.latest_adhoc = new_adhoc
        created = True
    return task, created
 def change_org_if_need(self):
     if self.request.user.is_superuser or \
             self.request.user.is_app or \
             self.kwargs.get('pk') is None:
         set_to_root_org()
예제 #4
0
 def change_org_if_need(request, kwargs):
     if request.user.is_authenticated and \
             request.user.is_superuser or \
             request.user.is_app or \
             kwargs.get('pk') is None:
         set_to_root_org()
예제 #5
0
 def run(self, record=True):
     set_to_root_org()
     if self.latest_adhoc:
         return self.latest_adhoc.run(record=record)
     else:
         return {'error': 'No adhoc'}
예제 #6
0
 def change_org_if_need():
     set_to_root_org()
예제 #7
0
 def initial(self, *args, **kwargs):
     super().initial(*args, *kwargs)
     self.current_org = get_current_org()
     set_to_root_org()
     self.obj = self.get_obj()
예제 #8
0
 def run(self, record=True):
     set_to_root_org()
     if record:
         return self._run_and_record()
     else:
         return self._run_only()
예제 #9
0
파일: api.py 프로젝트: oliver891001/jump
 def change_org_if_need(self):
     if self.request.user.is_superuser or \
             self.request.user.is_app or \
             self.kwargs.get('pk') is None:
         set_to_root_org()
예제 #10
0
 def change_org_if_need(request, kwargs):
     if request.user.is_authenticated and \
             request.user.is_superuser or \
             request.user.is_app or \
             kwargs.get('pk') is None:
         set_to_root_org()
예제 #11
0
 def get(self, request, *args, **kwargs):
     set_to_root_org()
     return super().get(request, *args, **kwargs)
예제 #12
0
파일: adhoc.py 프로젝트: drunkcz/jumpserver
 def run(self, record=True):
     set_to_root_org()
     if self.latest_adhoc:
         return self.latest_adhoc.run(record=record)
     else:
         return {'error': 'No adhoc'}
예제 #13
0
파일: adhoc.py 프로젝트: drunkcz/jumpserver
 def run(self, record=True):
     set_to_root_org()
     if record:
         return self._run_and_record()
     else:
         return self._run_only()