コード例 #1
0
ファイル: users.py プロジェクト: Mirantis/openstack-dashboard
 def handle(self, request, data):
     user_id = data['user']
     api.account_api(request).users.delete(user_id)
     messages.success(request,
                      '%s was successfully deleted.'
                      % user_id)
     return redirect(request.build_absolute_uri())
コード例 #2
0
def users(request, tenant_id):
    for f in (
            AddUser,
            RemoveUser,
    ):
        form, handled = f.maybe_handle(request)
        if handled:
            return handled


#    form, handled = UpdateTenant.maybe_handle(request)
#    if handled:
#        return handled
    add_user_form = AddUser()
    remove_user_form = RemoveUser()

    users = api.account_api(request).users.get_for_tenant(tenant_id)
    all_users = api.account_api(request).users.list()
    user_ids = [u.id for u in users]
    new_users = [u for u in all_users if not u.id in user_ids]
    return render_to_response(
        'django_openstack/syspanel/tenants/users.html', {
            'add_user_form': add_user_form,
            'remove_user_form': remove_user_form,
            'tenant_id': tenant_id,
            'users': users,
            'new_users': new_users,
        },
        context_instance=template.RequestContext(request))
コード例 #3
0
def users(request, tenant_id):
    for f in (AddUser, RemoveUser,):
        _, handled = f.maybe_handle(request)
        if handled:
            return handled
#    form, handled = UpdateTenant.maybe_handle(request)
#    if handled:
#        return handled
    add_user_form = AddUser()
    remove_user_form = RemoveUser()

    users = api.account_api(request).users.get_for_tenant(tenant_id).values
    all_users = api.account_api(request).users.list()
    new_user_ids = []
    user_ids = [u['id'] for u in users]
    all_user_ids = [u.id for u in all_users]
    for uid in all_user_ids:
        if not uid in user_ids:
            new_user_ids.append(uid)
    for i in user_ids:
        if i in new_user_ids:
            new_user_ids.remove(i)
    return render_to_response(
    'syspanel_tenant_users.html',{
        'add_user_form': add_user_form,
        'remove_user_form': remove_user_form,
        'tenant_id': tenant_id,
        'users': users,
        'new_users': new_user_ids,
    }, context_instance = template.RequestContext(request))
コード例 #4
0
ファイル: users.py プロジェクト: Mirantis/openstack-dashboard
def create(request):
    tenants = api.account_api(request).tenants.list()

    if request.method == "POST":
        form = UserForm(request.POST, tenant_list=tenants)
        if form.is_valid():
            user = form.clean()
            # TODO Make this a real request
            try:
                api.account_api(request).users.create(user['id'],
                                                      user['email'],
                                                      user['password'],
                                                      user['tenant_id'],
                                                      True)

                messages.success(request,
                                 '%s was successfully created.'
                                 % user['id'])
                return redirect('syspanel_users')

            except api_exceptions.ApiException, e:
                messages.error(request,
                                 'Error creating user: %s'
                                 % e.message)
                return redirect('syspanel_users')
        else:
            return render_to_response(
            'syspanel_user_create.html',{
                'form': form,
            }, context_instance = template.RequestContext(request))
コード例 #5
0
 def handle(self, request, data):
     try:
         api.account_api(request).role_refs.add_for_tenant_user(
             data["tenant"], data["user"], settings.OPENSTACK_KEYSTONE_DEFAULT_ROLE
         )
         messages.success(request, "%s was successfully added to %s." % (data["user"], data["tenant"]))
     except api_exceptions.ApiException, e:
         messages.error(request, "Unable to create user association: %s" % (e.message))
コード例 #6
0
 def handle(self, request, data):
     try:
         api.account_api(request).tenants.update(data['id'],
                 data['description'], data['enabled'])
         messages.success(request,
                          '%s was successfully updated.'
                          % data['id'])
     except api_exceptions.ApiException, e:
         messages.error(request, 'Unable to update tenant: %s' % e.message)
コード例 #7
0
 def handle(self, request, data):
     try:
         api.account_api(request).role_refs.delete_for_tenant_user(
             data['tenant'], data['user'], 'Member')
         messages.success(
             request, '%s was successfully removed from %s.' %
             (data['user'], data['tenant']))
     except api_exceptions.ApiException, e:
         messages.error(request,
                        'Unable to create tenant: %s' % (e.message))
コード例 #8
0
 def handle(self, request, data):
     try:
         api.account_api(request).role_refs.delete_for_tenant_user(data['tenant'],
                 data['user'], 'Member')
         messages.success(request,
                          '%s was successfully removed from %s.'
                          % (data['user'], data['tenant']))
     except api_exceptions.ApiException, e:
         messages.error(request, 'Unable to create tenant: %s' %
                        (e.message))
コード例 #9
0
 def handle(self, request, data):
     try:
         api.account_api(request).role_refs.add_for_tenant_user(
             data['tenant'], data['user'],
             settings.OPENSTACK_KEYSTONE_DEFAULT_ROLE)
         messages.success(
             request, '%s was successfully added to %s.' %
             (data['user'], data['tenant']))
     except api_exceptions.ApiException, e:
         messages.error(
             request, 'Unable to create user association: %s' % (e.message))
コード例 #10
0
ファイル: users.py プロジェクト: Mirantis/openstack-dashboard
def update(request, user_id):
    if request.method == "POST":
        tenants = api.account_api(request).tenants.list()
        form = UserForm(request.POST, tenant_list=tenants)
        if form.is_valid():
            user = form.clean()
            updated = []
            if user['email']:
                updated.append('email')
                api.account_api(request).users.update_email(user['id'],
                                                            user['email'])
            if user['password']:
                updated.append('password')
                api.account_api(request).users.update_password(user['id'],
                                                            user['password'])
            if user['tenant_id']:
                updated.append('tenant')
                api.account_api(request).users.update_tenant(user['id'],
                                                             user['tenant_id'])
            messages.success(request,
                             'Updated %s for %s.'
                             % (', '.join(updated), user_id))
            return redirect('syspanel_users')
        else:
            # TODO add better error management
            messages.error(request, 'Unable to update user,\
                                    please try again.')

            return render_to_response(
            'syspanel_user_update.html',{
                'form': form,
                'user_id': user_id,
            }, context_instance = template.RequestContext(request))

    else:
        u = api.account_api(request).users.get(user_id)
        tenants = api.account_api(request).tenants.list()
        try:
            # FIXME
            email = u.email
        except:
            email = ''

        try:
            tenant_id = u.tenantId
        except:
            tenant_id = None
        form = UserForm(initial={'id': user_id,
                                 'tenant_id': tenant_id,
                                 'email': email},
                                 tenant_list=tenants)
        return render_to_response(
        'syspanel_user_update.html',{
            'form': form,
            'user_id': user_id,
        }, context_instance = template.RequestContext(request))
コード例 #11
0
    def test_get_account_api(self):
        self.mox.StubOutClassWithMocks(OSExtras, "Account")
        OSExtras.Account(auth_token=TEST_TOKEN, management_url=TEST_URL)

        self.mox.StubOutWithMock(api, "url_for")
        api.url_for(IsA(http.HttpRequest), "identity", True).AndReturn(TEST_URL)
        api.url_for(IsA(http.HttpRequest), "identity", True).AndReturn(TEST_URL)

        self.mox.ReplayAll()

        self.assertIsNotNone(api.account_api(self.request))

        self.mox.VerifyAll()
コード例 #12
0
ファイル: users.py プロジェクト: Mirantis/openstack-dashboard
def index(request):
    for f in (UserDeleteForm,):
        _, handled = f.maybe_handle(request)
        if handled:
            return handled

    users = api.account_api(request).users.list()

    user_delete_form = UserDeleteForm()
    return render_to_response('syspanel_users.html',{
        'users': users,
        'user_delete_form': user_delete_form,
    }, context_instance = template.RequestContext(request))
コード例 #13
0
def update(request, tenant_id):
    form, handled = UpdateTenant.maybe_handle(request)
    if handled:
        return handled

    if request.method == 'GET':
        try:
            tenant = api.account_api(request).tenants.get(tenant_id)
            form = UpdateTenant(initial={'id': tenant.id,
                                         'description': tenant.description,
                                         'enabled': tenant.enabled})
        except api_exceptions.ApiException, e:
            messages.error(request, 'Unable to update tenant: %s' % e.message)
            return redirect('syspanel_tenants')
コード例 #14
0
ファイル: tenants.py プロジェクト: daniel-hou0/horizon
def users(request, tenant_id):
    for f in (AddUser, RemoveUser,):
        _, handled = f.maybe_handle(request)
        if handled:
            return handled
#    form, handled = UpdateTenant.maybe_handle(request)
#    if handled:
#        return handled
    add_user_form = AddUser()
    remove_user_form = RemoveUser()

    users = api.account_api(request).users.get_for_tenant(tenant_id)
    all_users = api.account_api(request).users.list()
    user_ids = [u.id for u in users]
    new_users = [u for u in all_users if not u.id in user_ids]
    return render_to_response(
    'django_openstack/syspanel/tenants/users.html', {
        'add_user_form': add_user_form,
        'remove_user_form': remove_user_form,
        'tenant_id': tenant_id,
        'users': users,
        'new_users': new_users,
    }, context_instance=template.RequestContext(request))
コード例 #15
0
 def stub_account_api(self):
     self.mox.StubOutWithMock(api, "account_api")
     account_api = self.mox.CreateMock(OSExtras.Account)
     api.account_api(IsA(http.HttpRequest)).AndReturn(account_api)
     return account_api
コード例 #16
0
def index(request):
    tenants = []
    try:
        tenants = api.account_api(request).tenants.list()
    except api_exceptions.ApiException, e:
        messages.error(request, 'Unable to get tenant info: %s' % e.message)
コード例 #17
0
 def handle(self, request, data):
     try:
         api.account_api(request).role_refs.delete_for_tenant_user(data["tenant"], data["user"], "Member")
         messages.success(request, "%s was successfully removed from %s." % (data["user"], data["tenant"]))
     except api_exceptions.ApiException, e:
         messages.error(request, "Unable to create tenant: %s" % (e.message))
コード例 #18
0
    if request.method == "POST":
        form = UserForm(request.POST, tenant_list=tenants)
        if form.is_valid():
            user = form.clean()
            # TODO Make this a real request
            try:
                LOG.info('Creating user with id "%s"' % user['id'])
                api.user_create(request,
                                user['id'],
                                user['email'],
                                user['password'],
                                user['tenant_id'],
                                True)
                api.account_api(request).role_refs.add_for_tenant_user(
                        user['tenant_id'], user['id'],
                        settings.OPENSTACK_KEYSTONE_DEFAULT_ROLE)

                messages.success(request,
                                 '%s was successfully created.'
                                 % user['id'])
                return redirect('syspanel_users')

            except api_exceptions.ApiException, e:
                LOG.error('ApiException while creating user\n'
                          'id: "%s", email: "%s", tenant_id: "%s"' %
                          (user['id'], user['email'], user['tenant_id']),
                          exc_info=True)
                messages.error(request,
                                 'Error creating user: %s'
                                 % e.message)
コード例 #19
0
    except api_exceptions.ApiException, e:
        messages.error(request,
                       'Unable to retrieve tenant list: %s' % e.message)
        return redirect('syspanel_users')

    if request.method == "POST":
        form = UserForm(request.POST, tenant_list=tenants)
        if form.is_valid():
            user = form.clean()
            # TODO Make this a real request
            try:
                LOG.info('Creating user with id "%s"' % user['id'])
                api.user_create(request, user['id'], user['email'],
                                user['password'], user['tenant_id'], True)
                api.account_api(request).role_refs.add_for_tenant_user(
                    user['tenant_id'], user['id'],
                    settings.OPENSTACK_KEYSTONE_DEFAULT_ROLE)

                messages.success(request,
                                 '%s was successfully created.' % user['id'])
                return redirect('syspanel_users')

            except api_exceptions.ApiException, e:
                LOG.error('ApiException while creating user\n'
                          'id: "%s", email: "%s", tenant_id: "%s"' %
                          (user['id'], user['email'], user['tenant_id']),
                          exc_info=True)
                messages.error(request, 'Error creating user: %s' % e.message)
                return redirect('syspanel_users')
        else:
            return render_to_response(