コード例 #1
0
def apply_policies_to_user(nodes_collection,
                           user,
                           auth_user,
                           api=None,
                           initialize=False):
    from gecoscc.tasks import object_changed, object_created

    computers = get_computer_of_user(nodes_collection, user)

    if api and initialize:
        user = visibility_group(nodes_collection.database, user)
        user = visibility_object_related(nodes_collection.database, user)
        remove_chef_user_data(user, computers, api)

    if not computers:
        return

    ous = nodes_collection.find(get_filter_ous_from_path(user['path']))
    for ou in ous:
        if ou.get('policies', {}):
            object_changed.delay(auth_user, 'ou', ou, {}, computers=computers)

    groups = nodes_collection.find({'_id': {'$in': user.get('memberof', [])}})
    for group in groups:
        if group.get('policies', {}):
            object_changed.delay(auth_user,
                                 'group',
                                 group, {},
                                 computers=computers)

    object_created.delay(auth_user, 'user', user, computers=computers)
コード例 #2
0
ファイル: utils.py プロジェクト: Emergya/gecoscc-ui
def apply_policies_to_computer(nodes_collection, computer, auth_user, api=None, initialize=False):
    from gecoscc.tasks import object_changed, object_created
    if api and initialize:
        computer = visibility_group(nodes_collection.database, computer)
        computer = visibility_object_related(nodes_collection.database, computer)
        remove_chef_computer_data(computer, api)

    ous = nodes_collection.find(get_filter_ous_from_path(computer['path']))
    for ou in ous:
        if ou.get('policies', {}):
            object_changed.delay(auth_user, 'ou', ou, {}, computers=[computer])

    groups = nodes_collection.find({'_id': {'$in': computer.get('memberof', [])}})
    for group in groups:
        if group.get('policies', {}):
            object_changed.delay(auth_user, 'group', group, {}, computers=[computer])

    object_created.delay(auth_user, 'computer', computer, computers=[computer])
コード例 #3
0
ファイル: __init__.py プロジェクト: gecos-team/gecoscc-ui
 def notify_created(self, obj):
     object_created.delay(self.request.user, self.objtype, obj)
コード例 #4
0
    def notify_created(self, obj):
        result = object_created.delay(self.objtype, obj)

        params = self._job_params(obj, 'created')

        self.request.jobs.create(result.task_id, **params)
コード例 #5
0
ファイル: __init__.py プロジェクト: joroca/gecoscc-ui
 def notify_created(self, obj):
     object_created.delay(self.request.user, self.objtype, obj)