async updateDynamicRoles (vals) {
    if (!User.#dynamicRolesFuncs) { return; }

    const newRoles = [];
    for (const [role, func] of Object.entries(User.#dynamicRolesFuncs)) {
      const result = await func.call(this, vals);
      if (result) {
        newRoles.push(role);
      }
    }

    if (newRoles.length === this.roles.length && newRoles.sort().join() === this.roles.sort().join()) {
      return;
    }

    this.roles = newRoles;
    await this.expandFromRoles();
    this.save(() => { });
  }
Update the roles of a user on login