diff --git a/app/assets/javascripts/discourse/controllers/group-manage.js.es6 b/app/assets/javascripts/discourse/controllers/group-manage.js.es6 index 3b94a86d024..4979911de78 100644 --- a/app/assets/javascripts/discourse/controllers/group-manage.js.es6 +++ b/app/assets/javascripts/discourse/controllers/group-manage.js.es6 @@ -1,9 +1,24 @@ +import { default as computed } from 'ember-addons/ember-computed-decorators'; + export default Ember.Controller.extend({ application: Ember.inject.controller(), - tabs: [ - { route: 'group.manage.profile', title: 'groups.manage.profile.title' }, - { route: 'group.manage.members', title: 'groups.manage.members.title' }, - { route: 'group.manage.logs', title: 'groups.manage.logs.title' }, - ], + @computed("model.automatic") + tabs(automatic) { + const defaultTabs = [ + { route: 'group.manage.profile', title: 'groups.manage.profile.title' }, + ]; + + if (!automatic) { + defaultTabs.push( + { route: 'group.manage.members', title: 'groups.manage.members.title' } + ); + + defaultTabs.push( + { route: 'group.manage.logs', title: 'groups.manage.logs.title' }, + ); + } + + return defaultTabs; + }, }); diff --git a/app/assets/javascripts/discourse/controllers/group.js.es6 b/app/assets/javascripts/discourse/controllers/group.js.es6 index d17de48bec4..6c0d32624a9 100644 --- a/app/assets/javascripts/discourse/controllers/group.js.es6 +++ b/app/assets/javascripts/discourse/controllers/group.js.es6 @@ -14,8 +14,8 @@ export default Ember.Controller.extend({ counts: null, showing: 'members', - @computed('showMessages', 'model.user_count') - tabs(showMessages, userCount) { + @computed('showMessages', 'model.user_count', 'canManageGroup') + tabs(showMessages, userCount, canManageGroup) { const membersTab = Tab.create({ name: 'members', route: 'group.index', @@ -36,7 +36,7 @@ export default Ember.Controller.extend({ })); } - if (this.currentUser && this.currentUser.canManageGroup(this.model)) { + if (canManageGroup) { defaultTabs.push( Tab.create({ name: 'manage', i18nKey: 'manage.title', icon: 'wrench' @@ -81,9 +81,12 @@ export default Ember.Controller.extend({ return this.currentUser && messageable; }, - @computed('model') - canManageGroup(model) { - return this.currentUser && this.currentUser.canManageGroup(model); + @computed('model', 'model.automatic') + canManageGroup(model, automatic) { + return this.currentUser && ( + this.currentUser.canManageGroup(model) || + (this.currentUser.admin && automatic) + ); }, actions: { diff --git a/app/assets/javascripts/discourse/routes/group-manage.js.es6 b/app/assets/javascripts/discourse/routes/group-manage.js.es6 index aca7a4bc6ed..43830174aab 100644 --- a/app/assets/javascripts/discourse/routes/group-manage.js.es6 +++ b/app/assets/javascripts/discourse/routes/group-manage.js.es6 @@ -8,7 +8,10 @@ export default Discourse.Route.extend({ }, afterModel(group) { - if (!this.currentUser || !this.currentUser.canManageGroup(group)) { + if (!this.currentUser || + !(this.currentUser.admin && group.get('automatic')) && + !this.currentUser.canManageGroup(group)) { + this.transitionTo("group.members", group); } }, diff --git a/app/assets/javascripts/discourse/templates/components/group-form.hbs b/app/assets/javascripts/discourse/templates/components/group-form.hbs index 43eeea98377..c13f981d32f 100644 --- a/app/assets/javascripts/discourse/templates/components/group-form.hbs +++ b/app/assets/javascripts/discourse/templates/components/group-form.hbs @@ -1,57 +1,5 @@
- {{#if this.currentUser.admin}} -
- - - {{text-field name="name" - class="input-xxlarge group-form-name" - value=model.name - placeholderKey="groups.name_placeholder"}} - - {{input-tip validation=nameValidation}} -
- {{/if}} - -
- - - {{text-field name='full_name' - class="input-xxlarge group-form-full-name" - value=model.full_name}} -
- - {{#if this.currentUser.admin}} -
- - - {{input value=model.title name="title" class="input-xxlarge"}} -
- {{/if}} - -
- - {{d-editor value=model.bio_raw class="group-form-bio"}} -
- - {{#if manageMembership}} -
- - - {{user-selector usernames=model.ownerUsernames - placeholderKey="groups.selector_placeholder" - id="owner-selector"}} -
- -
- - - {{user-selector usernames=model.usernames - placeholderKey="groups.selector_placeholder" - id="member-selector"}} -
- + {{#if model.automatic}}
@@ -61,56 +9,7 @@ content=visibilityLevelOptions castInteger=true}}
- {{/if}} -
- {{#if currentUser.admin}} - - {{/if}} - - - - - - - - {{#if model.allow_membership_requests}} -
- - - {{expanding-text-area name="membership-request-template" - class='group-form-membership-request-template' - value=model.membership_request_template}} -
- {{/if}} -
- - {{#if currentUser.admin}}
@@ -135,55 +34,193 @@ {{notifications-button i18nPrefix='groups.notifications' value=model.default_notification_level}}
- -
- - - {{list-setting name="automatic_membership" settingValue=model.emailDomains}} - - -
- -
- - - {{combo-box name="grant_trust_level" - valueAttribute="value" - value=model.grant_trust_level - content=trustLevelOptions}} -
- - {{#if siteSettings.email_in}} + {{else}} + {{#if this.currentUser.admin}}
- + - {{text-field name="incoming_email" - class="input-xxlarge" - value=model.incoming_email - placeholderKey="admin.groups.incoming_email_placeholder"}} + {{text-field name="name" + class="input-xxlarge group-form-name" + value=model.name + placeholderKey="groups.name_placeholder"}} - {{plugin-outlet name="group-email-in" args=(hash model=model)}} + {{input-tip validation=nameValidation}}
{{/if}} + +
+ + + {{text-field name='full_name' + class="input-xxlarge group-form-full-name" + value=model.full_name}} +
+ + {{#if this.currentUser.admin}} +
+ + + {{input value=model.title name="title" class="input-xxlarge"}} +
+ {{/if}} + +
+ + {{d-editor value=model.bio_raw class="group-form-bio"}} +
+ + {{#if manageMembership}} +
+ + + {{user-selector usernames=model.ownerUsernames + placeholderKey="groups.selector_placeholder" + id="owner-selector"}} +
+ +
+ + + {{user-selector usernames=model.usernames + placeholderKey="groups.selector_placeholder" + id="member-selector"}} +
+ +
+ + + {{combo-box name="alias" + valueAttribute="value" + value=model.visibility_level + content=visibilityLevelOptions + castInteger=true}} +
+ {{/if}} + +
+ {{#if currentUser.admin}} + + {{/if}} + + + + + + + + {{#if model.allow_membership_requests}} +
+ + + {{expanding-text-area name="membership-request-template" + class='group-form-membership-request-template' + value=model.membership_request_template}} +
+ {{/if}} +
+ + {{#if currentUser.admin}} +
+ + + {{combo-box name="alias" + valueAttribute="value" + value=model.mentionable_level + content=aliasLevelOptions}} +
+ +
+ + + {{combo-box name="alias" + valueAttribute="value" + value=model.messageable_level + content=aliasLevelOptions}} +
+ +
+ + + {{notifications-button i18nPrefix='groups.notifications' + value=model.default_notification_level}} +
+ +
+ + + {{list-setting name="automatic_membership" settingValue=model.emailDomains}} + + +
+ +
+ + + {{combo-box name="grant_trust_level" + valueAttribute="value" + value=model.grant_trust_level + content=trustLevelOptions}} +
+ + {{#if siteSettings.email_in}} +
+ + + {{text-field name="incoming_email" + class="input-xxlarge" + value=model.incoming_email + placeholderKey="admin.groups.incoming_email_placeholder"}} + + {{plugin-outlet name="group-email-in" args=(hash model=model)}} +
+ {{/if}} + {{/if}} + +
+ {{group-flair-inputs model=model}} +
+ + {{plugin-outlet name="group-edit" args=(hash group=model)}} + +
+ {{d-button action="save" + disabled=disableSave + class='btn btn-primary group-form-save' + label=saveLabel}} + + {{yield}} +
{{/if}} - -
- {{group-flair-inputs model=model}} -
- - {{plugin-outlet name="group-edit" args=(hash group=model)}} - -
- {{d-button action="save" - disabled=disableSave - class='btn btn-primary group-form-save' - label=saveLabel}} - - {{yield}} -