def handle(self, request, data):
     try:
         api.account_api(request).role_refs.delete_for_tenant_user(data['tenant'],
                 data['user'], auth.Roles.PROJECT_ADMIN)
         messages.success(request,
                          '%s was successfully removed from admins of %s.'
                          % (data['user'], data['tenant']))
     except api_exceptions.ApiException, e:
         messages.error(request, 'Unable to create tenant: %s' %
                        (e.message))
 def handle(self, request, data):
     try:
         api.account_api(request).role_refs.add_for_tenant_user(data['tenant'],
                 data['user'], auth.Roles.USER)
         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))
 def _handle(self, request, data):
     super(UserEditAdminForm, self)._handle(request, data)
     for admin_role in [auth.Roles.SOFTWARE_ADMIN, auth.Roles.HARDWARE_ADMIN]:
         field_name = 'is_' + admin_role
         if self.user[field_name] != (admin_role in self.orig_user.global_roles):
             if self.user[field_name]:
                 api.account_api(request).role_refs. \
                     add_for_tenant_user(None, self.user['id'], admin_role)
                 self.updated.append(field_name)
             elif self.user['id'] != request.user.username:
                 api.account_api(request).role_refs. \
                     delete_for_tenant_user(None, self.user['id'], admin_role)
                 self.updated.append(field_name)
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 = set([u.id for u in all_users if auth.Roles.needs_tenant(api.User(u).global_roles)]) - set([u['id'] for u in users])
    users = [user for user in users if auth.Roles.PROJECT_ADMIN in user["tenantRoles"]]
    return render_to_response(
    topbar + '/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))