Projet

Général

Profil

0001-agent-redeploy-roles-when-authentic-get-a-new-servic.patch

Nicolas Roche, 09 août 2019 18:20

Télécharger (2,4 ko)

Voir les différences:

Subject: [PATCH] agent: redeploy roles when authentic get a new service to
 manage (#35345)

 hobo/agent/authentic2/management/commands/hobo_deploy.py | 9 +++++++++
 1 file changed, 9 insertions(+)
hobo/agent/authentic2/management/commands/hobo_deploy.py
15 15
from django.core import serializers
16 16

  
17 17
from django_rbac.utils import get_role_model, get_ou_model
18 18
from django.conf import settings
19 19

  
20 20
from tenant_schemas.utils import tenant_context
21 21

  
22 22
from hobo.agent.common.management.commands import hobo_deploy
23
from hobo.agent.authentic2.provisionning import Provisionning
23 24

  
24 25
User = get_user_model()
25 26

  
26 27

  
27 28
class Command(hobo_deploy.Command):
28 29
    help = 'Deploy multitenant authentic service from hobo'
29 30

  
30 31
    def __init__(self, *args, **kwargs):
......
200 201
                    content_type=provider_type)
201 202
                # load skeleton if service is new
202 203
                if service.get('template_name'):
203 204
                    # if there are more of the same servie, we will create an
204 205
                    # ou
205 206
                    self.load_skeleton(provider, service['service-id'],
206 207
                                       service['template_name'])
207 208

  
209
                if service_created:
210
                    # mass provision roles
211
                    engine = Provisionning()
212
                    roles = get_role_model().objects.all()
213
                    ous = {provider.ou.id: provider.ou}
214
                    engine.notify_roles(ous, roles, full=True)
215

  
216

  
208 217
    def load_skeleton(self, provider, service_id, template_name,
209 218
                      create_ou=False):
210 219
        if not getattr(settings, 'HOBO_SKELETONS_DIR', None):
211 220
            self.logger.debug('no skeleton: no HOBO_SKELETONS_DIR setting')
212 221
            return
213 222
        # ex.: /var/lib/authentic2-multitenant/skeletons/communes/wcs/
214 223
        skeleton_dir = os.path.join(settings.HOBO_SKELETONS_DIR, template_name,
215 224
                                    service_id)
216
-