diff --git a/app/assets/javascripts/admin/controllers/admin-user-index.js.es6 b/app/assets/javascripts/admin/controllers/admin-user-index.js.es6 index a67591e2aa5..62cba939179 100644 --- a/app/assets/javascripts/admin/controllers/admin-user-index.js.es6 +++ b/app/assets/javascripts/admin/controllers/admin-user-index.js.es6 @@ -3,7 +3,8 @@ import CanCheckEmails from "discourse/mixins/can-check-emails"; import { propertyNotEqual, setting } from "discourse/lib/computed"; import { userPath } from "discourse/lib/url"; import { popupAjaxError } from "discourse/lib/ajax-error"; -import computed from "ember-addons/ember-computed-decorators"; +import { default as computed } from "ember-addons/ember-computed-decorators"; +import { fmt } from "discourse/lib/computed"; export default Ember.Controller.extend(CanCheckEmails, { adminTools: Ember.inject.service(), @@ -64,24 +65,22 @@ export default Ember.Controller.extend(CanCheckEmails, { .join(", "); }, - userFields: function() { - const siteUserFields = this.site.get("user_fields"), - userFields = this.get("model.user_fields"); + @computed("model.user_fields.[]") + userFields(userFields) { + const siteUserFields = this.site.get("user_fields"); if (!Ember.isEmpty(siteUserFields)) { - return siteUserFields.map(function(uf) { - let value = userFields ? userFields[uf.get("id").toString()] : null; - return { name: uf.get("name"), value: value }; + return siteUserFields.map(uf => { + const value = userFields ? userFields[uf.get("id").toString()] : null; + return { name: uf.get("name"), value }; }); } - return []; - }.property("model.user_fields.[]"), - @computed("model.username_lower") - preferencesPath(username) { - return userPath(`${username}/preferences`); + return []; }, + preferencesPath: fmt("model.username_lower", "%@/preferences"), + @computed("model.can_delete_all_posts", "model.staff", "model.post_count") deleteAllPostsExplanation(canDeleteAllPosts, staff, postCount) { if (canDeleteAllPosts) { @@ -120,9 +119,7 @@ export default Ember.Controller.extend(CanCheckEmails, { groupAdded(added) { this.get("model") .groupAdded(added) - .catch(function() { - bootbox.alert(I18n.t("generic_error")); - }); + .catch(() => bootbox.alert(I18n.t("generic_error"))); }, groupRemoved(groupId) { @@ -133,9 +130,7 @@ export default Ember.Controller.extend(CanCheckEmails, { this.set("originalPrimaryGroupId", null); } }) - .catch(function() { - bootbox.alert(I18n.t("generic_error")); - }); + .catch(() => bootbox.alert(I18n.t("generic_error"))); }, actions: { @@ -201,13 +196,11 @@ export default Ember.Controller.extend(CanCheckEmails, { }, clearPenaltyHistory() { - let user = this.get("model"); - return ajax(`/admin/users/${user.get("id")}/penalty_history`, { - type: "DELETE" - }) - .then(() => { - user.set("tl3_requirements.penalty_counts.total", 0); - }) + const user = this.get("model"); + const path = `/admin/users/${user.get("id")}/penalty_history`; + + return ajax(path, { type: "DELETE" }) + .then(() => user.set("tl3_requirements.penalty_counts.total", 0)) .catch(popupAjaxError); }, @@ -225,7 +218,6 @@ export default Ember.Controller.extend(CanCheckEmails, { target_user: this.get("model.username") }); }, - showFlagsReceived() { this.get("adminTools").showFlagsReceived(this.get("model")); }, @@ -245,10 +237,9 @@ export default Ember.Controller.extend(CanCheckEmails, { const oldUsername = this.get("model.username"); this.set("model.username", newUsername); - return ajax(`/users/${oldUsername.toLowerCase()}/preferences/username`, { - data: { new_username: newUsername }, - type: "PUT" - }) + const path = `/users/${oldUsername.toLowerCase()}/preferences/username`; + + return ajax(path, { data: { new_username: newUsername }, type: "PUT" }) .catch(e => { this.set("model.username", oldUsername); popupAjaxError(e); @@ -260,13 +251,9 @@ export default Ember.Controller.extend(CanCheckEmails, { const oldName = this.get("model.name"); this.set("model.name", newName); - return ajax( - userPath(`${this.get("model.username").toLowerCase()}.json`), - { - data: { name: newName }, - type: "PUT" - } - ) + const path = userPath(`${this.get("model.username").toLowerCase()}.json`); + + return ajax(path, { data: { name: newName }, type: "PUT" }) .catch(e => { this.set("model.name", oldName); popupAjaxError(e); @@ -276,15 +263,11 @@ export default Ember.Controller.extend(CanCheckEmails, { saveTitle(newTitle) { const oldTitle = this.get("model.title"); - this.set("model.title", newTitle); - return ajax( - userPath(`${this.get("model.username").toLowerCase()}.json`), - { - data: { title: newTitle }, - type: "PUT" - } - ) + + const path = userPath(`${this.get("model.username").toLowerCase()}.json`); + + return ajax(path, { data: { title: newTitle }, type: "PUT" }) .catch(e => { this.set("model.title", oldTitle); popupAjaxError(e); @@ -303,9 +286,7 @@ export default Ember.Controller.extend(CanCheckEmails, { bufferedIds .filter(id => !currentIds.includes(id)) - .forEach(id => { - this.groupAdded(availableGroups.findBy("id", id)); - }); + .forEach(id => this.groupAdded(availableGroups.findBy("id", id))); currentIds .filter(id => !bufferedIds.includes(id)) @@ -317,21 +298,15 @@ export default Ember.Controller.extend(CanCheckEmails, { }, savePrimaryGroup() { - const self = this; + const primaryGroupId = this.get("model.primary_group_id"); + const path = `/admin/users/${this.get("model.id")}/primary_group`; - return ajax("/admin/users/" + this.get("model.id") + "/primary_group", { + return ajax(path, { type: "PUT", - data: { primary_group_id: this.get("model.primary_group_id") } + data: { primary_group_id: primaryGroupId } }) - .then(function() { - self.set( - "originalPrimaryGroupId", - self.get("model.primary_group_id") - ); - }) - .catch(function() { - bootbox.alert(I18n.t("generic_error")); - }); + .then(() => this.set("originalPrimaryGroupId", primaryGroupId)) + .catch(() => bootbox.alert(I18n.t("generic_error"))); }, resetPrimaryGroup() { @@ -339,30 +314,26 @@ export default Ember.Controller.extend(CanCheckEmails, { }, regenerateApiKey() { - const self = this; - bootbox.confirm( I18n.t("admin.api.confirm_regen"), I18n.t("no_value"), I18n.t("yes_value"), - function(result) { + result => { if (result) { - self.get("model").generateApiKey(); + this.get("model").generateApiKey(); } } ); }, revokeApiKey() { - const self = this; - bootbox.confirm( I18n.t("admin.api.confirm_revoke"), I18n.t("no_value"), I18n.t("yes_value"), - function(result) { + result => { if (result) { - self.get("model").revokeApiKey(); + this.get("model").revokeApiKey(); } } ); diff --git a/app/assets/javascripts/admin/templates/user-index.hbs b/app/assets/javascripts/admin/templates/user-index.hbs index 4c7dc5453f6..56f53167a1c 100644 --- a/app/assets/javascripts/admin/templates/user-index.hbs +++ b/app/assets/javascripts/admin/templates/user-index.hbs @@ -1,58 +1,80 @@
-
+
{{#if model.canViewProfile}} - {{#link-to 'user' model class="btn btn-default"}} + {{#link-to "user" model class="btn btn-default"}} {{d-icon "user"}} - {{i18n 'admin.user.show_public_profile'}} + {{i18n "admin.user.show_public_profile"}} {{/link-to}} {{/if}} {{#if model.can_view_action_logs}} - {{d-button action=(action "viewActionLogs") class="btn-default" actionParam=model.username icon="list-alt" label="admin.user.action_logs"}} + {{d-button + action=(action "viewActionLogs") + class="btn-default" + actionParam=model.username + icon="far-list-al" + label="admin.user.action_logs"}} {{/if}} {{#if model.active}} {{#if currentUser.admin}} - {{d-button class="btn-default" action=(action "logOut") icon="power-off" label="admin.user.log_out"}} + {{d-button + class="btn-default" + action=(action "logOut") + icon="power-off" + label="admin.user.log_out"}} {{/if}} {{/if}} - {{plugin-outlet name="admin-user-controls-after" args=(hash model=model) tagName="" connectorTagName=""}} + {{plugin-outlet + name="admin-user-controls-after" + args=(hash model=model) + tagName="" + connectorTagName=""}}
-
- {{admin-editable-field name='user.username.title' +
+ {{admin-editable-field name="user.username.title" value=model.username - action=(action 'saveUsername') + action=(action "saveUsername") editing=editingUsername}}
-
- {{admin-editable-field name='user.name.title' +
+ {{admin-editable-field name="user.name.title" value=model.name - action=(action 'saveName') + action=(action "saveName") editing=editingName}}
- {{plugin-outlet name="admin-user-below-names" args=(hash user=model) tagName='' connectorTagName=''}} + {{plugin-outlet + name="admin-user-below-names" + args=(hash user=model) + tagName="" + connectorTagName=""}} {{#if canCheckEmails}} -
{{#if userFields}} -
+
{{#each userFields as |uf|}} -
-
{{uf.name}}
-
+
+
{{uf.name}}
+
{{#if uf.value}} {{uf.value}} {{else}} @@ -181,107 +222,154 @@ {{plugin-outlet name="admin-user-details" args=(hash model=model)}} -
-

{{i18n 'admin.user.permissions'}}

+
+

{{i18n "admin.user.permissions"}}

{{#if showApproval}} -
-
{{i18n 'admin.users.approved'}}
-
+
+
{{i18n "admin.users.approved"}}
+
{{#if model.approved}} - {{i18n 'admin.user.approved_by'}} - {{#link-to 'adminUser' model.approvedBy}}{{avatar model.approvedBy imageSize="small"}}{{/link-to}} - {{#link-to 'adminUser' model.approvedBy}}{{model.approvedBy.username}}{{/link-to}} + {{i18n "admin.user.approved_by"}} + {{#link-to "adminUser" model.approvedBy}} + {{avatar model.approvedBy imageSize="small"}} + {{/link-to}} + {{#link-to "adminUser" model.approvedBy}} + {{model.approvedBy.username}} + {{/link-to}} {{else}} - {{i18n 'no_value'}} + {{i18n "no_value"}} {{/if}}
-
+
{{#if model.approved}} - {{i18n 'admin.user.approve_success'}} + {{i18n "admin.user.approve_success"}} {{else}} {{#if model.can_approve}} - {{d-button class="btn-default" action=(action "approve") icon="check" label="admin.user.approve"}} + {{d-button + class="btn-default" + action=(action "approve") + icon="check" + label="admin.user.approve"}} {{/if}} {{/if}}
{{/if}} -
-
{{i18n 'admin.users.active'}}
-
{{i18n-yes-no model.active}}
-
+
+
{{i18n "admin.users.active"}}
+
{{i18n-yes-no model.active}}
+
{{#if model.active}} {{#if model.can_deactivate}} - {{d-button class="btn-default" action=(action "deactivate") label="admin.user.deactivate_account"}} - {{i18n 'admin.user.deactivate_explanation'}} + {{d-button + class="btn-default" + action=(action "deactivate") + label="admin.user.deactivate_account"}} + {{i18n "admin.user.deactivate_explanation"}} {{/if}} {{else}} {{#if model.can_send_activation_email}} - {{d-button class="btn-default" action=(action "sendActivationEmail") icon="envelope" label="admin.user.send_activation_email"}} + {{d-button + class="btn-default" + action=(action "sendActivationEmail") + icon="envelope" + label="admin.user.send_activation_email"}} {{/if}} {{#if model.can_activate}} - {{d-button class="btn-default" action=(action "activate") icon="check" label="admin.user.activate"}} + {{d-button + class="btn-default" + action=(action "activate") + icon="check" + label="admin.user.activate"}} {{/if}} {{/if}}
-
{{i18n 'admin.user.staged'}}
-
{{i18n-yes-no model.staged}}
-
{{i18n 'admin.user.staged_explanation'}}
+
{{i18n "admin.user.staged"}}
+
{{i18n-yes-no model.staged}}
+
{{i18n "admin.user.staged_explanation"}}
{{#if currentUser.admin}} -
-
{{i18n 'admin.api.key'}}
+
+
{{i18n "admin.api.key"}}
{{#if model.api_key}} -
+
{{model.api_key.key}} - {{d-button class="btn-default" action=(action "regenerateApiKey") icon="undo" label="admin.api.regenerate"}} - {{d-button class="btn-default" action=(action "revokeApiKey") icon="times" label="admin.api.revoke"}} + {{d-button + class="btn-default" + action=(action "regenerateApiKey") + icon="undo" + label="admin.api.regenerate"}} + {{d-button + class="btn-default" + action=(action "revokeApiKey") + icon="times" + label="admin.api.revoke"}}
{{else}} -
+
-
- {{d-button class="btn-default" action=(action "generateApiKey") icon="key" label="admin.api.generate"}} +
+ {{d-button + class="btn-default" + action=(action "generateApiKey") + icon="key" + label="admin.api.generate"}}
{{/if}}
{{/if}} -
-
{{i18n 'admin.user.admin'}}
-
{{i18n-yes-no model.admin}}
-
+
+
{{i18n "admin.user.admin"}}
+
{{i18n-yes-no model.admin}}
+
{{#if model.can_revoke_admin}} - {{d-button class="btn-default" action=(action "revokeAdmin") icon="shield-alt" label="admin.user.revoke_admin"}} + {{d-button + class="btn-default" + action=(action "revokeAdmin") + icon="shield-alt" + label="admin.user.revoke_admin"}} {{/if}} {{#if model.can_grant_admin}} - {{d-button class="btn-default" action=(action "grantAdmin") icon="shield-alt" label="admin.user.grant_admin"}} + {{d-button + class="btn-default" + action=(action "grantAdmin") + icon="shield-alt" + label="admin.user.grant_admin"}} {{/if}}
-
-
{{i18n 'admin.user.moderator'}}
-
{{i18n-yes-no model.moderator}}
-
+
+
{{i18n "admin.user.moderator"}}
+
{{i18n-yes-no model.moderator}}
+
{{#if model.can_revoke_moderation}} - {{d-button class="btn-default" action=(action "revokeModeration") icon="shield-alt" label="admin.user.revoke_moderation"}} + {{d-button + class="btn-default" + action=(action "revokeModeration") + icon="shield-alt" + label="admin.user.revoke_moderation"}} {{/if}} {{#if model.can_grant_moderation}} - {{d-button class="btn-default" action=(action "grantModeration") icon="shield-alt" label="admin.user.grant_moderation"}} + {{d-button + class="btn-default" + action=(action "grantModeration") + icon="shield-alt" + label="admin.user.grant_moderation"}} {{/if}}
-
-
{{i18n 'trust_level'}}
+
+
{{i18n "trust_level"}}
{{combo-box content=site.trustLevels value=model.trust_level nameProperty="detailedName"}} {{#if model.dirty}} @@ -295,21 +383,31 @@ {{#if model.canLockTrustLevel}} {{#if hasLockedTrustLevel}} {{d-icon "lock" title="admin.user.trust_level_locked_tip"}} - {{d-button class="btn-default" action=(action "lockTrustLevel") actionParam=false label="admin.user.unlock_trust_level"}} + {{d-button + class="btn-default" + action=(action "lockTrustLevel") + actionParam=false + label="admin.user.unlock_trust_level"}} {{else}} {{d-icon "unlock" title="admin.user.trust_level_unlocked_tip"}} - {{d-button class="btn-default" action=(action "lockTrustLevel") actionParam=true label="admin.user.lock_trust_level"}} + {{d-button + class="btn-default" + action=(action "lockTrustLevel") + actionParam=true + label="admin.user.lock_trust_level"}} {{/if}} {{/if}} {{#if model.tl3Requirements}} - {{#link-to 'adminUser.tl3Requirements' model class="btn btn-default"}}{{i18n 'admin.user.trust_level_3_requirements'}}{{/link-to}} + {{#link-to "adminUser.tl3Requirements" model class="btn btn-default"}} + {{i18n "admin.user.trust_level_3_requirements"}} + {{/link-to}} {{/if}}
-
-
{{i18n 'admin.user.suspended'}}
-
+
+
{{i18n "admin.user.suspended"}}
+
{{i18n-yes-no model.suspended}} {{#if model.suspended}} {{#unless model.suspendedForever}} @@ -317,14 +415,14 @@ {{/unless}} {{/if}}
-
+
{{#if model.suspended}} {{d-button class="btn-danger unsuspend-user" action=(action "unsuspend") icon="ban" label="admin.user.unsuspend"}} - {{i18n 'admin.user.suspended_explanation'}} + {{i18n "admin.user.suspended_explanation"}} {{else}} {{#if model.canSuspend}} {{d-button @@ -332,29 +430,33 @@ action=(action "showSuspendModal") icon="ban" label="admin.user.suspend"}} - {{i18n 'admin.user.suspended_explanation'}} + {{i18n "admin.user.suspended_explanation"}} {{/if}} {{/if}}
{{#if model.suspended}} -
-
{{i18n 'admin.user.suspended_by'}}
-
- {{#link-to 'adminUser' model.suspendedBy}}{{avatar model.suspendedBy imageSize="tiny"}}{{/link-to}} - {{#link-to 'adminUser' model.suspendedBy}}{{model.suspendedBy.username}}{{/link-to}} +
+
{{i18n "admin.user.suspended_by"}}
+
+ {{#link-to "adminUser" model.suspendedBy}} + {{avatar model.suspendedBy imageSize="tiny"}} + {{/link-to}} + {{#link-to "adminUser" model.suspendedBy}} + {{model.suspendedBy.username}} + {{/link-to}}
-
- {{i18n 'admin.user.suspend_reason'}}: -
{{model.full_suspend_reason}}
+
+ {{i18n "admin.user.suspend_reason"}}: +
{{model.full_suspend_reason}}
{{/if}} -
-
{{i18n 'admin.user.silenced'}}
-
+
+
{{i18n "admin.user.silenced"}}
+
{{i18n-yes-no model.silenced}} {{#if model.silenced}} {{#unless model.silencedForever}} @@ -362,7 +464,7 @@ {{/unless}} {{/if}}
-
+
{{#conditional-loading-spinner size="small" condition=model.silencingUser}} {{#if model.silenced}} {{d-button @@ -370,39 +472,43 @@ action=(action "unsilence") icon="microphone-slash" label="admin.user.unsilence"}} - {{i18n 'admin.user.silence_explanation'}} + {{i18n "admin.user.silence_explanation"}} {{else}} {{d-button class="btn-danger silence-user" action=(action "showSilenceModal") icon="microphone-slash" label="admin.user.silence"}} - {{i18n 'admin.user.silence_explanation'}} + {{i18n "admin.user.silence_explanation"}} {{/if}} {{/conditional-loading-spinner}}
{{#if model.silenced}} -
-
{{i18n 'admin.user.silenced_by'}}
-
- {{#link-to 'adminUser' model.silencedBy}}{{avatar model.silencedBy imageSize="tiny"}}{{/link-to}} - {{#link-to 'adminUser' model.silencedBy}}{{model.silencedBy.username}}{{/link-to}} +
+
{{i18n "admin.user.silenced_by"}}
+
+ {{#link-to "adminUser" model.silencedBy}} + {{avatar model.silencedBy imageSize="tiny"}} + {{/link-to}} + {{#link-to "adminUser" model.silencedBy}} + {{model.silencedBy.username}} + {{/link-to}}
-
- {{i18n 'admin.user.silence_reason'}}: -
{{model.silence_reason}}
+
+ {{i18n "admin.user.silence_reason"}}: +
{{model.silence_reason}}
{{/if}} {{#if model.tl3_requirements.penalty_counts.total}} -
-
{{i18n 'admin.user.penalty_count'}}
-
{{model.tl3_requirements.penalty_counts.total}}
+
+
{{i18n "admin.user.penalty_count"}}
+
{{model.tl3_requirements.penalty_counts.total}}
{{#if currentUser.admin}} -
+
{{d-button label="admin.user.clear_penalty_history.title" class="btn-default" icon="times" @@ -416,32 +522,38 @@
{{#if currentUser.admin}} -
-

{{i18n 'admin.groups.title'}}

-
-
{{i18n 'admin.groups.automatic'}}
-
{{{automaticGroups}}}
+
+

{{i18n "admin.groups.title"}}

+
+
{{i18n "admin.groups.automatic"}}
+
{{{automaticGroups}}}
-
-
{{i18n 'admin.groups.custom'}}
-
- {{admin-group-selector selected=model.customGroups available=availableGroups buffer=customGroupIdsBuffer}} +
+
{{i18n "admin.groups.custom"}}
+
+ {{admin-group-selector + selected=model.customGroups + available=availableGroups + buffer=customGroupIdsBuffer}}
{{#if customGroupsDirty}} -
+
{{d-button icon="check" class="ok" action=(action "saveCustomGroups")}} {{d-button icon="times" class="cancel" action=(action "resetCustomGroups")}}
{{/if}}
{{#if model.customGroups}} -
-
{{i18n 'admin.groups.primary'}}
-
- {{combo-box content=model.customGroups value=model.primary_group_id none="admin.groups.no_primary"}} +
+
{{i18n "admin.groups.primary"}}
+
+ {{combo-box + content=model.customGroups + value=model.primary_group_id + none="admin.groups.no_primary"}}
{{#if primaryGroupDirty}} -
+
{{d-button icon="check" class="ok" action=(action "savePrimaryGroup")}} {{d-button icon="times" class="cancel" action=(action "resetPrimaryGroup")}}
@@ -451,56 +563,60 @@
{{/if}} -
-

{{i18n 'admin.user.activity'}}

+
+

{{i18n "admin.user.activity"}}

-
-
{{i18n 'created'}}
-
{{format-date model.created_at leaveAgo="true"}}
+
+
{{i18n "created"}}
+
{{format-date model.created_at leaveAgo="true"}}
-
-
{{i18n 'admin.users.last_emailed'}}
-
{{format-date model.last_emailed_at}}
+
+
{{i18n "admin.users.last_emailed"}}
+
{{format-date model.last_emailed_at}}
-
-
{{i18n 'last_seen'}}
-
{{format-date model.last_seen_at leaveAgo="true"}}
+
+
{{i18n "last_seen"}}
+
{{format-date model.last_seen_at leaveAgo="true"}}
-
-
{{i18n 'admin.user.like_count'}}
-
{{model.like_given_count}} / {{model.like_count}}
+
+
{{i18n "admin.user.like_count"}}
+
{{model.like_given_count}} / {{model.like_count}}
-
-
{{i18n 'admin.user.topics_entered'}}
-
{{model.topics_entered}}
+
+
{{i18n "admin.user.topics_entered"}}
+
{{model.topics_entered}}
-
-
{{i18n 'admin.user.post_count'}}
-
{{model.post_count}}
-
+
+
{{i18n "admin.user.post_count"}}
+
{{model.post_count}}
+
{{#if model.can_delete_all_posts}} {{#if model.post_count}} - {{d-button class="btn-danger" action=(action "deleteAllPosts") icon="far-trash-alt" label="admin.user.delete_all_posts"}} + {{d-button + class="btn-danger" + action=(action "deleteAllPosts") + icon="far-trash-alt" + label="admin.user.delete_all_posts"}} {{/if}} {{else}} {{deleteAllPostsExplanation}} {{/if}}
-
-
{{i18n 'admin.user.posts_read_count'}}
-
{{model.posts_read_count}}
+
+
{{i18n "admin.user.posts_read_count"}}
+
{{model.posts_read_count}}
-
-
{{i18n 'admin.user.warnings_received_count'}}
-
{{model.warnings_received_count}}
+
+
{{i18n "admin.user.warnings_received_count"}}
+
{{model.warnings_received_count}}
-
-
{{i18n 'admin.user.flags_given_received_count'}}
-
+
+
{{i18n "admin.user.flags_given_received_count"}}
+
{{model.flags_given_count}} / {{model.flags_received_count}}
-
+
{{#if model.flags_received_count}} {{d-button class="btn-default" @@ -511,46 +627,46 @@ {{/if}}
-
-
{{i18n 'admin.user.private_topics_count'}}
-
{{model.private_topics_count}}
+
+
{{i18n "admin.user.private_topics_count"}}
+
{{model.private_topics_count}}
-
-
{{i18n 'admin.user.time_read'}}
-
{{{format-duration model.time_read}}}
+
+
{{i18n "admin.user.time_read"}}
+
{{{format-duration model.time_read}}}
-
-
{{i18n 'user.invited.days_visited'}}
-
{{{model.days_visited}}}
+
+
{{i18n "user.invited.days_visited"}}
+
{{{model.days_visited}}}
{{#if model.single_sign_on_record}} -
-

{{i18n 'admin.user.sso.title'}}

+
+

{{i18n "admin.user.sso.title"}}

{{#with model.single_sign_on_record as |sso|}} -
-
{{i18n 'admin.user.sso.external_id'}}
-
{{sso.external_id}}
+
+
{{i18n "admin.user.sso.external_id"}}
+
{{sso.external_id}}
-
-
{{i18n 'admin.user.sso.external_username'}}
-
{{sso.external_username}}
+
+
{{i18n "admin.user.sso.external_username"}}
+
{{sso.external_username}}
-
-
{{i18n 'admin.user.sso.external_name'}}
-
{{sso.external_name}}
+
+
{{i18n "admin.user.sso.external_name"}}
+
{{sso.external_name}}
{{#if sso.external_email}} -
-
{{i18n 'admin.user.sso.external_email'}}
-
{{sso.external_email}}
+
+
{{i18n "admin.user.sso.external_email"}}
+
{{sso.external_email}}
{{/if}} -
-
{{i18n 'admin.user.sso.external_avatar_url'}}
-
{{sso.external_avatar_url}}
+
+
{{i18n "admin.user.sso.external_avatar_url"}}
+
{{sso.external_avatar_url}}
{{/with}}
@@ -563,7 +679,12 @@
{{#if model.active}} {{#if model.can_impersonate}} - {{d-button class="btn-danger" action=(action "impersonate") icon="crosshairs" label="admin.impersonate.title" title="admin.impersonate.help"}} + {{d-button + class="btn-danger" + action=(action "impersonate") + icon="crosshairs" + label="admin.impersonate.title" + title="admin.impersonate.help"}} {{/if}} {{/if}} @@ -590,4 +711,5 @@
{{/if}}
+