mirror of
https://github.com/wekan/wekan.git
synced 2025-04-22 04:57:07 -04:00
- Custom Product Name in Admin Panel / Layout. In Progress, setting does not affect change UI yet. Thanks to xet7 !
- Fix LDAP User Search Scope. Thanks to Vnimos and Akuket ! Related #119 - Fix Save Admin Panel STMP password. Thanks to saurabharch and xet7 ! Closes #1856
This commit is contained in:
parent
82e90f7b94
commit
4cb25a5bcf
11 changed files with 98 additions and 43 deletions
|
@ -16,6 +16,8 @@ template(name="setting")
|
|||
a.js-setting-menu(data-id="account-setting") {{_ 'accounts'}}
|
||||
li
|
||||
a.js-setting-menu(data-id="announcement-setting") {{_ 'admin-announcement'}}
|
||||
li
|
||||
a.js-setting-menu(data-id="layout-setting") {{_ 'layout'}}
|
||||
.main-body
|
||||
if loading.get
|
||||
+spinner
|
||||
|
@ -27,6 +29,8 @@ template(name="setting")
|
|||
+accountSettings
|
||||
else if announcementSetting.get
|
||||
+announcementSettings
|
||||
else if layoutSetting.get
|
||||
+layoutSettings
|
||||
|
||||
template(name="general")
|
||||
ul#registration-setting.setting-detail
|
||||
|
@ -72,7 +76,7 @@ template(name='email')
|
|||
li.smtp-form
|
||||
.title {{_ 'smtp-password'}}
|
||||
.form-group
|
||||
input.form-control#mail-server-password(type="text", placeholder="{{_ 'password'}}" value="")
|
||||
input.form-control#mail-server-password(type="password", placeholder="{{_ 'password'}}" value="{{currentSetting.mailServer.password}}")
|
||||
li.smtp-form
|
||||
.title {{_ 'smtp-tls'}}
|
||||
.form-group
|
||||
|
@ -127,3 +131,13 @@ template(name='announcementSettings')
|
|||
textarea#admin-announcement.form-control= currentSetting.body
|
||||
li
|
||||
button.js-announcement-save.primary {{_ 'save'}}
|
||||
|
||||
template(name='layoutSettings')
|
||||
ul#layout-setting.setting-detail
|
||||
li.layout-form
|
||||
.title {{_ 'custom-product-name'}}
|
||||
.form-group
|
||||
input.form-control#product-name(type="text", placeholder="Wekan" value="{{currentSetting.productName}}")
|
||||
|
||||
li
|
||||
button.js-save-layout.primary {{_ 'save'}}
|
||||
|
|
|
@ -6,6 +6,7 @@ BlazeComponent.extendComponent({
|
|||
this.emailSetting = new ReactiveVar(false);
|
||||
this.accountSetting = new ReactiveVar(false);
|
||||
this.announcementSetting = new ReactiveVar(false);
|
||||
this.layoutSetting = new ReactiveVar(false);
|
||||
|
||||
Meteor.subscribe('setting');
|
||||
Meteor.subscribe('mailServer');
|
||||
|
@ -68,6 +69,7 @@ BlazeComponent.extendComponent({
|
|||
this.emailSetting.set('email-setting' === targetID);
|
||||
this.accountSetting.set('account-setting' === targetID);
|
||||
this.announcementSetting.set('announcement-setting' === targetID);
|
||||
this.layoutSetting.set('layout-setting' === targetID);
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -129,6 +131,25 @@ BlazeComponent.extendComponent({
|
|||
|
||||
},
|
||||
|
||||
saveLayout() {
|
||||
this.setLoading(true);
|
||||
$('li').removeClass('has-error');
|
||||
|
||||
try {
|
||||
const productName = $('#product-name').val().trim();
|
||||
Settings.update(Settings.findOne()._id, {
|
||||
$set: {
|
||||
'productName': productName,
|
||||
},
|
||||
});
|
||||
} catch (e) {
|
||||
return;
|
||||
} finally {
|
||||
this.setLoading(false);
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
sendSMTPTestEmail() {
|
||||
Meteor.call('sendSMTPTestEmail', (err, ret) => {
|
||||
if (!err && ret) { /* eslint-disable no-console */
|
||||
|
@ -154,6 +175,7 @@ BlazeComponent.extendComponent({
|
|||
'click button.js-email-invite': this.inviteThroughEmail,
|
||||
'click button.js-save': this.saveMailServerInfo,
|
||||
'click button.js-send-smtp-test-email': this.sendSMTPTestEmail,
|
||||
'click button.js-save-layout': this.saveLayout,
|
||||
}];
|
||||
},
|
||||
}).register('setting');
|
||||
|
|
|
@ -66,7 +66,8 @@
|
|||
padding: 0 0.5rem
|
||||
|
||||
.admin-announcement,
|
||||
.invite-people
|
||||
.invite-people,
|
||||
.layout
|
||||
padding-left 20px;
|
||||
li
|
||||
min-width: 500px;
|
||||
|
|
|
@ -44,7 +44,7 @@ services:
|
|||
# If you disable Wekan API with 'false', Export Board does not work.
|
||||
- WITH_API=true
|
||||
# Optional: Integration with Matomo https://matomo.org that is installed to your server
|
||||
# The address of the server where Matomo is hosted.
|
||||
# The address of the server where Matomo is hosted.
|
||||
# example: - MATOMO_ADDRESS=https://example.com/matomo
|
||||
- MATOMO_ADDRESS=''
|
||||
# The value of the site ID given in Matomo server for Wekan
|
||||
|
@ -132,10 +132,10 @@ services:
|
|||
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
|
||||
# example : LDAP_BACKGROUND_SYNC_INTERVAL=12345
|
||||
- LDAP_BACKGROUND_SYNC_INTERVAL=100
|
||||
# LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED :
|
||||
# LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED :
|
||||
# example : LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true
|
||||
- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false
|
||||
# LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS :
|
||||
# LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS :
|
||||
# example : LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=true
|
||||
- LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=false
|
||||
# LDAP_ENCRYPTION : If using LDAPS
|
||||
|
@ -150,7 +150,7 @@ services:
|
|||
# LDAP_USER_SEARCH_FILTER : Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed
|
||||
# example : LDAP_USER_SEARCH_FILTER=
|
||||
- LDAP_USER_SEARCH_FILTER=''
|
||||
# LDAP_USER_SEARCH_SCOPE : Base (search only in the provided DN), one (search only in the provided DN and one level deep), or subtree (search the whole subtree)
|
||||
# LDAP_USER_SEARCH_SCOPE : base (search only in the provided DN), one (search only in the provided DN and one level deep), or sub (search the whole subtree).
|
||||
# example : LDAP_USER_SEARCH_SCOPE=one
|
||||
- LDAP_USER_SEARCH_SCOPE=''
|
||||
# LDAP_USER_SEARCH_FIELD : Which field is used to find the user
|
||||
|
@ -168,17 +168,17 @@ services:
|
|||
# LDAP_GROUP_FILTER_OBJECTCLASS : The object class for filtering
|
||||
# example : LDAP_GROUP_FILTER_OBJECTCLASS=group
|
||||
- LDAP_GROUP_FILTER_OBJECTCLASS=''
|
||||
# LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE :
|
||||
# example :
|
||||
# LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE :
|
||||
# example :
|
||||
- LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE=''
|
||||
# LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE :
|
||||
# example :
|
||||
# LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE :
|
||||
# example :
|
||||
- LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE=''
|
||||
# LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT :
|
||||
# example :
|
||||
# LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT :
|
||||
# example :
|
||||
- LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT=''
|
||||
# LDAP_GROUP_FILTER_GROUP_NAME :
|
||||
# example :
|
||||
# LDAP_GROUP_FILTER_GROUP_NAME :
|
||||
# example :
|
||||
- LDAP_GROUP_FILTER_GROUP_NAME=''
|
||||
# LDAP_UNIQUE_IDENTIFIER_FIELD : This field is sometimes class GUID (Globally Unique Identifier)
|
||||
# example : LDAP_UNIQUE_IDENTIFIER_FIELD=guid
|
||||
|
@ -189,20 +189,20 @@ services:
|
|||
# LDAP_USERNAME_FIELD : Which field contains the ldap username
|
||||
# example : LDAP_USERNAME_FIELD=username
|
||||
- LDAP_USERNAME_FIELD=''
|
||||
# LDAP_MERGE_EXISTING_USERS :
|
||||
# LDAP_MERGE_EXISTING_USERS :
|
||||
# example : LDAP_MERGE_EXISTING_USERS=true
|
||||
- LDAP_MERGE_EXISTING_USERS=false
|
||||
# LDAP_SYNC_USER_DATA :
|
||||
# LDAP_SYNC_USER_DATA :
|
||||
# example : LDAP_SYNC_USER_DATA=true
|
||||
- LDAP_SYNC_USER_DATA=false
|
||||
# LDAP_SYNC_USER_DATA_FIELDMAP :
|
||||
# LDAP_SYNC_USER_DATA_FIELDMAP :
|
||||
# example : LDAP_SYNC_USER_DATA_FIELDMAP={\"cn\":\"name\", \"mail\":\"email\"}
|
||||
- LDAP_SYNC_USER_DATA_FIELDMAP=''
|
||||
# LDAP_SYNC_GROUP_ROLES :
|
||||
# example :
|
||||
# LDAP_SYNC_GROUP_ROLES :
|
||||
# example :
|
||||
- LDAP_SYNC_GROUP_ROLES=''
|
||||
# LDAP_DEFAULT_DOMAIN : The default domain of the ldap it is used to create email if the field is not map correctly with the LDAP_SYNC_USER_DATA_FIELDMAP
|
||||
# example :
|
||||
# example :
|
||||
- LDAP_DEFAULT_DOMAIN=''
|
||||
|
||||
depends_on:
|
||||
|
|
|
@ -31,7 +31,7 @@ services:
|
|||
# If you disable Wekan API with 'false', Export Board does not work.
|
||||
- WITH_API=true
|
||||
# Optional: Integration with Matomo https://matomo.org that is installed to your server
|
||||
# The address of the server where Matomo is hosted.
|
||||
# The address of the server where Matomo is hosted.
|
||||
# example: - MATOMO_ADDRESS=https://example.com/matomo
|
||||
- MATOMO_ADDRESS=''
|
||||
# The value of the site ID given in Matomo server for Wekan
|
||||
|
@ -119,10 +119,10 @@ services:
|
|||
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
|
||||
# example : LDAP_BACKGROUND_SYNC_INTERVAL=12345
|
||||
- LDAP_BACKGROUND_SYNC_INTERVAL=100
|
||||
# LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED :
|
||||
# LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED :
|
||||
# example : LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true
|
||||
- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false
|
||||
# LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS :
|
||||
# LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS :
|
||||
# example : LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=true
|
||||
- LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=false
|
||||
# LDAP_ENCRYPTION : If using LDAPS
|
||||
|
@ -137,7 +137,7 @@ services:
|
|||
# LDAP_USER_SEARCH_FILTER : Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed
|
||||
# example : LDAP_USER_SEARCH_FILTER=
|
||||
- LDAP_USER_SEARCH_FILTER=''
|
||||
# LDAP_USER_SEARCH_SCOPE : Base (search only in the provided DN), one (search only in the provided DN and one level deep), or subtree (search the whole subtree)
|
||||
# LDAP_USER_SEARCH_SCOPE : base (search only in the provided DN), one (search only in the provided DN and one level deep), or sub (search the whole subtree)
|
||||
# example : LDAP_USER_SEARCH_SCOPE=one
|
||||
- LDAP_USER_SEARCH_SCOPE=''
|
||||
# LDAP_USER_SEARCH_FIELD : Which field is used to find the user
|
||||
|
@ -155,17 +155,17 @@ services:
|
|||
# LDAP_GROUP_FILTER_OBJECTCLASS : The object class for filtering
|
||||
# example : LDAP_GROUP_FILTER_OBJECTCLASS=group
|
||||
- LDAP_GROUP_FILTER_OBJECTCLASS=''
|
||||
# LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE :
|
||||
# example :
|
||||
# LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE :
|
||||
# example :
|
||||
- LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE=''
|
||||
# LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE :
|
||||
# example :
|
||||
# LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE :
|
||||
# example :
|
||||
- LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE=''
|
||||
# LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT :
|
||||
# example :
|
||||
# LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT :
|
||||
# example :
|
||||
- LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT=''
|
||||
# LDAP_GROUP_FILTER_GROUP_NAME :
|
||||
# example :
|
||||
# LDAP_GROUP_FILTER_GROUP_NAME :
|
||||
# example :
|
||||
- LDAP_GROUP_FILTER_GROUP_NAME=''
|
||||
# LDAP_UNIQUE_IDENTIFIER_FIELD : This field is sometimes class GUID (Globally Unique Identifier)
|
||||
# example : LDAP_UNIQUE_IDENTIFIER_FIELD=guid
|
||||
|
@ -176,20 +176,20 @@ services:
|
|||
# LDAP_USERNAME_FIELD : Which field contains the ldap username
|
||||
# example : LDAP_USERNAME_FIELD=username
|
||||
- LDAP_USERNAME_FIELD=''
|
||||
# LDAP_MERGE_EXISTING_USERS :
|
||||
# LDAP_MERGE_EXISTING_USERS :
|
||||
# example : LDAP_MERGE_EXISTING_USERS=true
|
||||
- LDAP_MERGE_EXISTING_USERS=false
|
||||
# LDAP_SYNC_USER_DATA :
|
||||
# LDAP_SYNC_USER_DATA :
|
||||
# example : LDAP_SYNC_USER_DATA=true
|
||||
- LDAP_SYNC_USER_DATA=false
|
||||
# LDAP_SYNC_USER_DATA_FIELDMAP :
|
||||
# LDAP_SYNC_USER_DATA_FIELDMAP :
|
||||
# example : LDAP_SYNC_USER_DATA_FIELDMAP={\"cn\":\"name\", \"mail\":\"email\"}
|
||||
- LDAP_SYNC_USER_DATA_FIELDMAP=''
|
||||
# LDAP_SYNC_GROUP_ROLES :
|
||||
# example :
|
||||
# LDAP_SYNC_GROUP_ROLES :
|
||||
# example :
|
||||
- LDAP_SYNC_GROUP_ROLES=''
|
||||
# LDAP_DEFAULT_DOMAIN : The default domain of the ldap it is used to create email if the field is not map correctly with the LDAP_SYNC_USER_DATA_FIELDMAP
|
||||
# example :
|
||||
# example :
|
||||
- LDAP_DEFAULT_DOMAIN=''
|
||||
|
||||
depends_on:
|
||||
|
|
|
@ -612,5 +612,7 @@
|
|||
"oauth2": "OAuth2",
|
||||
"cas": "CAS",
|
||||
"authentication-method": "Authentication method",
|
||||
"authentication-type": "Authentication type"
|
||||
"authentication-type": "Authentication type",
|
||||
"custom-product-name": "Custom Product Name",
|
||||
"layout": "Layout"
|
||||
}
|
||||
|
|
|
@ -28,6 +28,10 @@ Settings.attachSchema(new SimpleSchema({
|
|||
type: String,
|
||||
optional: true,
|
||||
},
|
||||
productName: {
|
||||
type: String,
|
||||
optional: true,
|
||||
},
|
||||
createdAt: {
|
||||
type: Date,
|
||||
denyUpdate: true,
|
||||
|
|
|
@ -350,3 +350,15 @@ Migrations.add('remove-customFields-references-broken', () => {
|
|||
},
|
||||
}, noValidateMulti);
|
||||
});
|
||||
|
||||
Migrations.add('add-product-name', () => {
|
||||
Settings.update({
|
||||
productName: {
|
||||
$exists: false,
|
||||
},
|
||||
}, {
|
||||
$set: {
|
||||
productName:'',
|
||||
},
|
||||
}, noValidateMulti);
|
||||
});
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
Meteor.publish('setting', () => {
|
||||
return Settings.find({}, {fields:{disableRegistration: 1}});
|
||||
return Settings.find({}, {fields:{disableRegistration: 1, productName: 1}});
|
||||
});
|
||||
|
||||
Meteor.publish('mailServer', function () {
|
||||
|
|
|
@ -176,7 +176,7 @@ KEY_LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED="ldap-background-sync-keep-
|
|||
|
||||
DESCRIPTION_LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=""
|
||||
DEFAULT_LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS="false"
|
||||
KEY_LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS="ldap-background-sync-import-new-users"
|
||||
KEY_LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS="ldap-background-sync-import-new-users"
|
||||
|
||||
DESCRIPTION_LDAP_ENCRYPTION="If using LDAPS"
|
||||
DEFAULT_LDAP_ENCRYPTION="false"
|
||||
|
@ -194,7 +194,7 @@ DESCRIPTION_LDAP_USER_SEARCH_FILTER="Optional extra LDAP filters. Don't forget t
|
|||
DEFAULT_LDAP_USER_SEARCH_FILTER=""
|
||||
KEY_LDAP_USER_SEARCH_FILTER="ldap-user-search-filter"
|
||||
|
||||
DESCRIPTION_LDAP_USER_SEARCH_SCOPE="Base (search only in the provided DN), one (search only in the provided DN and one level deep), or subtree (search the whole subtree)."
|
||||
DESCRIPTION_LDAP_USER_SEARCH_SCOPE="base (search only in the provided DN), one (search only in the provided DN and one level deep), or sub (search the whole subtree). Example: one"
|
||||
DEFAULT_LDAP_USER_SEARCH_SCOPE=""
|
||||
KEY_LDAP_USER_SEARCH_SCOPE="ldap-user-search-scope"
|
||||
|
||||
|
|
|
@ -180,7 +180,7 @@ echo -e "Optional extra LDAP filters. Don't forget the outmost enclosing parenth
|
|||
echo -e "\t$ snap set $SNAP_NAME LDAP_USER_SEARCH_FILTER=''"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap User Search Scope."
|
||||
echo -e "Base (search only in the provided DN), one (search only in the provided DN and one level deep), or subtree (search the whole subtree):"
|
||||
echo -e "base (search only in the provided DN), one (search only in the provided DN and one level deep), or sub (search the whole subtree). Example: one"
|
||||
echo -e "\t$ snap set $SNAP_NAME LDAP_USER_SEARCH_SCOPE=one"
|
||||
echo -e "\n"
|
||||
echo -e "Ldap User Search Field."
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue