/Admin/Users/User page blank


(J Steiner) #1

I run a private, invite-only forum, and have my security settings set like this:


And when I click on an active user's name, or even the "Admin" link in the dropdown from my avatar, this is all I see:

I can view the admin screen for users who’ve not yet been approved, interestingly enough; but not active / approved users.

If I turn off the “Admins must approve all users before they gain access” option, then all user admin screens load correctly.


(resure) #2

I have the same issue. There is also Uncaught TypeError: undefined is not a function admin.js:3 in browser console.

Docker installation, current version: e8c53d1.

Plugins:

  • Spoiler Alert! - Current version: 729a37f
  • poll - Not under source control.
  • emoji - Not under source control.
  • docker_manager - Current version: 866ebd6

(Jeff Atwood) #3

@neil can you take a look at this on Monday, feels like a legit bug with this setting.


(Kane York) #4

I noticed an hour ago, during some offline testing, that the same symptoms occurred right after I suspended someone on Vagrant.

Here’s the error from the console:

@@@ admin_user_route.js?body=1 line 18 @@@

Discourse.AdminUserRoute = Discourse.Route.extend({

  serialize: function(model) {
    return { username: model.get('username').toLowerCase() };
    // Uncaught TypeError: Object#<Object> has no method 'get'
  },

(Graeme Stuart) #5

I have the exact same symptoms as of upgrade last week.

https://meta.discourse.org/t/cannot-see-individual-users-in-admin/14053?u=ggstuart&source_topic_id=13914

(Neil Lalonde) #6

I pushed fixes for the broken admin user pages. As mentioned, it was happening when must_approve_users is enabled and when a user is suspended.


(Graeme Stuart) #7

I have no suspended users. Is it likely that the pushes will fix this for me? Looking at the commit I don’t think this will affect my install as no users are suspended. Perhaps I have a different problem. Can I help isolate it?

My security settings:

As reported above by @joel6890, if I deselect must_approve_users then the problem goes away.

Also, I just noticed I can view the system user. I cannot view any other user admin page.


(Graeme Stuart) #8

Full error console if it helps.

Uncaught TypeError: Object #<Object> has no method 'get' admin-871a9c599940ca67bb5e390c2bb261b2.js:3
Discourse.AdminUserRoute.Discourse.Route.extend.serialize admin-871a9c599940ca67bb5e390c2bb261b2.js:3
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
V vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:11
c vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:11
i.generate vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:11
Ember.Router.Ember.Object.extend.generate vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:11
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:11
g.get vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
e vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.EnumerableUtils.forEach vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
Ember.View.Ember.CoreView.extend._applyAttributeBindings vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.View.Ember.CoreView.extend.applyAttributesToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.View.Ember.CoreView.extend.beforeRender vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.CoreView.Ember.Object.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.View.Ember.CoreView.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.Instrumentation.instrument vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
Ember.CoreView.Ember.Object.extend.renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.merge.appendChild vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.View.Ember.CoreView.extend.appendChild vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
t.ViewHelper.Ember.Object.create.helper vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:11
m admin-871a9c599940ca67bb5e390c2bb261b2.js:9
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:1
Ember.View.Ember.CoreView.extend.render vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember._HandlebarsBoundView.Ember._MetamorphView.extend.render vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
Ember.CoreView.Ember.Object.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.View.Ember.CoreView.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.Instrumentation.instrument vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
Ember.CoreView.Ember.Object.extend.renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.merge.appendChild vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.View.Ember.CoreView.extend.appendChild vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
t vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
b admin-871a9c599940ca67bb5e390c2bb261b2.js:9
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:1
Ember.View.Ember.CoreView.extend.render vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember._HandlebarsBoundView.Ember._MetamorphView.extend.render vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
Ember.CoreView.Ember.Object.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.View.Ember.CoreView.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.Instrumentation.instrument vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
Ember.CoreView.Ember.Object.extend.renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.merge.appendChild vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.View.Ember.CoreView.extend.appendChild vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
t vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
(anonymous function) admin-871a9c599940ca67bb5e390c2bb261b2.js:10
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:1
Ember.View.Ember.CoreView.extend.render vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.CoreView.Ember.Object.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.View.Ember.CoreView.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.Instrumentation.instrument vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
Ember.CoreView.Ember.Object.extend.renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.View.Ember.CoreView.extend.forEachChildView vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.ContainerView.Ember.View.extend.render vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
Ember.CoreView.Ember.Object.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.View.Ember.CoreView.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.Instrumentation.instrument vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
Ember.CoreView.Ember.Object.extend.renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.merge.appendChild vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.View.Ember.CoreView.extend.appendChild vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
t.ViewHelper.Ember.Object.create.helper vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:11
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
(anonymous function) admin-871a9c599940ca67bb5e390c2bb261b2.js:9
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:1
Ember.View.Ember.CoreView.extend.render vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.CoreView.Ember.Object.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.View.Ember.CoreView.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.Instrumentation.instrument vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
Ember.CoreView.Ember.Object.extend.renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.View.Ember.CoreView.extend.forEachChildView vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.ContainerView.Ember.View.extend.render vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
Ember.CoreView.Ember.Object.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.View.Ember.CoreView.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.Instrumentation.instrument vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
Ember.CoreView.Ember.Object.extend.renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.merge.appendChild vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.View.Ember.CoreView.extend.appendChild vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
t.ViewHelper.Ember.Object.create.helper vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:11
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
(anonymous function) admin-871a9c599940ca67bb5e390c2bb261b2.js:3
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:1
Ember.View.Ember.CoreView.extend.render vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.CoreView.Ember.Object.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.View.Ember.CoreView.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.Instrumentation.instrument vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
Ember.CoreView.Ember.Object.extend.renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.View.Ember.CoreView.extend.forEachChildView vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.ContainerView.Ember.View.extend.render vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
Ember.CoreView.Ember.Object.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.View.Ember.CoreView.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.Instrumentation.instrument vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
Ember.CoreView.Ember.Object.extend.renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.merge.appendChild vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.View.Ember.CoreView.extend.appendChild vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
t.ViewHelper.Ember.Object.create.helper vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:11
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:10
(anonymous function) application-42f94388b1c6395bfc3dbd04597d1ee4.js:10
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:1
Ember.View.Ember.CoreView.extend.render vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.CoreView.Ember.Object.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.View.Ember.CoreView.extend._renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.Instrumentation.instrument vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
Ember.CoreView.Ember.Object.extend.renderToBuffer vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:8
Ember.View.Ember.CoreView.extend.createElement vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.merge.insertElement vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
Ember.View.Ember.CoreView.extend._insertElement vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:9
n.flush vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
r.end vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
r.run vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:5
Ember.run vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:6
s.success application-42f94388b1c6395bfc3dbd04597d1ee4.js:1
h vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:3
f.fireWith vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:3
r vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:4
(anonymous function) vendor-c044fa66b1d2a93bda6e7f7c3563b4fe.js:4

(Neil Lalonde) #9

Oh, I made it sound like both conditions need to be true. I meant this:

If you have must_approve_users enabled, some admin user pages will be broken. In addition to that case, suspended users will definitely have broken admin user pages. Two different cases when the page will be broken.

My fixes will help you, unless there’s another case I didn’t find.


(resure) #10

Thanks, 36cbd0d fixes this.


(Graeme Stuart) #11

Great, thanks. I can see the change here:

https://github.com/discourse/discourse/commit/36cbd0d348ddcb5123db03620e85a53e2819d755

I was looking at this one:

https://github.com/discourse/discourse/commit/e82355874297f2ca59540f62dc472756689ce5b6

So, should I upgrade to head now or is there a version bump imminent?


(Neil Lalonde) #12

Upgrade now. We may bump version in a few days, not sure yet. No point waiting for it.


(Jeff Atwood) #13