Feature(s) impacted
I have the following set up.
Three tables.
Accounts
and Users
and a many-to-many table between the two called AccountUser
Account has oneToMany AccountUsers
AccountUser has ManyToOne users and ManyToOne accounts
Observed behavior
On the AccountUser table view in Forest Admin it seems we can add accounts by the default + button with the text “add an existing account” and this cause us some issues, because we can’t really remove it.
I did found a solution to override this relationship route and instead of using “next()” i’m returning an error and this solves it in a way, however we would like to remove this button all together, and couldn’t found a way to do so
Expected behavior
We would want to be able to remove this button all together.
This is how we ended up disable this button in the routes class
router.post(
"/account/:accountId/relationships/users",
permissionMiddlewareCreator.create(),
async (request, response) => {
response.status(400).send({
errors: [{ detail: "Cannot create user-account relationship manually" }],
});
}
);
Context
- Project name: Empathy
- Team name: Engineering (any team)
- Environment name: All (production, dev, etc )
- Agent type & version: forest-express
- Recent changes made on your end if any: …
Hello @Avishai_Lippner,
Thanks for your feedback.
Can you describe how is declared the relationship between these tables with sequelize inside your code?
Sure,
User model association:
User.belongsToMany(models.account, {
through: models.accountUser,
as: "accounts",
});
Account model association:
Account.belongsTo(models.user, {
foreignKey: {
name: "createdByKey",
field: "createdBy",
},
as: "Created By",
});
Account.belongsToMany(models.user, {
through: models.accountUser,
as: "users",
});
AccountUser model association:
AccountUser.associate = (models) => {
AccountUser.belongsTo(models.user, {
foreignKey: {
name: 'userIdKey',
field: 'userId',
},
as: 'user',
});
AccountUser.belongsTo(models.account, {
foreignKey: {
name: 'accountIdKey',
field: 'accountId',
},
as: 'account',
});
};
return AccountUser;
};
Hello,
I checked on our side, and today it’s not possible to hide this button here in the UI. I’m adding this suggestion to our feature requests.
Hello again @Avishai_Lippner,
Actually I have a suggestion: you can mark a relationship as read only. It’ll hide the +
button in the UI when accessing relations of a record.
Here is how to proceed:
- Switch to the layout editor
- click on the next to the name of the
Users
collection
- click on the
Fields
tab
- select the relationship named
accounts
- switch it to read-only mode and save your changes
2 Likes
Looks like it did the trick,
Thank you @GuillaumeGautreau
1 Like