Skip to content

Can't save Accounts_CustomFields in ./packages/rocketchat-lib/server/startup/settings.js #9763

@renxuqiang

Description

@renxuqiang

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions