Rocket.chat: Can't save Accounts_CustomFields in ./packages/rocketchat-lib/server/startup/settings.js

Created on 18 Feb 2018  路  4Comments  路  Source: RocketChat/Rocket.Chat

Description:

I'm new to Rocket.Chat and I can not sure whether it is a bug, I'm debugging for this problem 2 days, can anyone please help?
I want to add some CustomFields in user's account, so I modify the setting in ./packages/rocketchat-lib/server/startup/settings.js

this.add('Accounts_CustomFields', '[HERE IS MY CUSTOM VALUE]', {
type: 'code',
'public': true,
i18nLabel: 'Custom_Fields'
});

and then I start the server in debug mode, I try to reg a new account throw REST API, in the file
./server/methods/registerUser.js there is a method call:
RocketChat.saveCustomFields(userId, formData); -->
if (s.trim(RocketChat.settings.get('Accounts_CustomFields')) !== '')
and the if test always return false because RocketChat.settings.get('Accounts_CustomFields') always return '' (empty string)

it seems the code in server/startup/settings.js just did not work, and i don't know why, can any one help me to figure out the problem? thanks

Server Setup Information:

  • Version of Rocket.Chat Server: 0.61.0-develop
  • Operating System: macOS High Sierra 10.13.3
  • Deployment Method(snap/docker/tar/etc): tar
  • Number of Running Instances: 1
  • DB Replicaset Oplog:
  • Node Version:8.9.3 - x64

Steps to Reproduce:

  1. modify ./packages/rocketchat-lib/server/startup/settings.js,
    this.add('Accounts_CustomFields', '[HERE IS MY CUSTOM VALUE]', {...}
    you can just type a 'test' string
  2. modify ./packages/rocketchat-lib/server/functions/saveCustomFields.js, add
    let value = RocketChat.settings.get('Accounts_CustomFields');
    console.log(value);
    debugger;
    in the saveCustomFields function, before the if test
  3. reg a user from web or REST API

Expected behavior:

in the log (or breakpoint) , the value of RocketChat.settings.get('Accounts_CustomFields');
show be test, not ''(empty string)

Actual behavior:

in the log (or breakpoint) , the value of RocketChat.settings.get('Accounts_CustomFields');
is alway ''(empty string), and the if test will fail, and can't save the CustomFields

Most helpful comment

@kaiiiiiiiii Hi,
1-how I can edit Users custom fields from administration.
2- also in create user from administration not showing custom fields.
3- how add custom field from administration that read-only for users.
4- how add custom field from administration that private for user and other users can't see that.
tanks.

All 4 comments

You can actually set custom fields through the admin interface, no need to touch the code ;)

Example:
Administration -> Accounts -> Custom Fields to Show in User Info

[{"Company":"#{Company}"}, {"Position":"#{Position}"}]

screen shot 2018-02-18 at 19 36 29

Administration -> Accounts -> Registration -> Custom Fields

{ "Company": { "type": "text", "required": true, "minLength": 2, "maxLength": 100 }, "Position": { "type": "text", "required": true, "minLength": 5, "maxLength": 100 } }

screen shot 2018-02-18 at 19 36 17

Currently there's a bug in the Rocket.Chat User Info UI, which prevents custom fields to be shown. I already opened a PR (#9646) for that, so it should be fix with the next release.

thanks for your help~
I tried set the custom fields from "Administration -> Accounts -> Custom Fields" page , and it worked!

thank you very much 馃憤
I'll close the issue

Can other user who is not admin see the custom fields ? I also tried to call the rest api /api/v1/users.info?userId=xxx, il returns customFields only when called by admin user

@kaiiiiiiiii Hi,
1-how I can edit Users custom fields from administration.
2- also in create user from administration not showing custom fields.
3- how add custom field from administration that read-only for users.
4- how add custom field from administration that private for user and other users can't see that.
tanks.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

zeigerpuppy picture zeigerpuppy  路  3Comments

tanc picture tanc  路  3Comments

sta-szek picture sta-szek  路  3Comments

ghost picture ghost  路  3Comments

antn89 picture antn89  路  3Comments