diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 0000000000..e88701a0a6 --- /dev/null +++ b/codecov.yml @@ -0,0 +1,2 @@ +comment: + branch: master diff --git a/packages/strapi-admin/controllers/Auth.js b/packages/strapi-admin/controllers/Auth.js index 2680c1e615..af7523ab38 100644 --- a/packages/strapi-admin/controllers/Auth.js +++ b/packages/strapi-admin/controllers/Auth.js @@ -343,7 +343,7 @@ module.exports = { to: admin.email, from: settings.from.email || settings.from.name - ? `"${settings.from.name}" <${settings.from.email}>` + ? `${settings.from.name} <${settings.from.email}>` : undefined, replyTo: settings.response_email, subject: settings.object, diff --git a/packages/strapi-plugin-content-type-builder/controllers/validation/relations.js b/packages/strapi-plugin-content-type-builder/controllers/validation/relations.js index 854ed050ac..6221592cdc 100644 --- a/packages/strapi-plugin-content-type-builder/controllers/validation/relations.js +++ b/packages/strapi-plugin-content-type-builder/controllers/validation/relations.js @@ -22,6 +22,7 @@ module.exports = (obj, validNatures) => { .required(), unique: validators.unique.nullable(), configurable: yup.boolean().nullable(), + autoPopulate: yup.boolean().nullable(), dominant: yup.boolean().nullable(), columnName: yup.string().nullable(), targetAttribute: REVERSE_RELATIONS.includes(obj.nature) diff --git a/packages/strapi-plugin-content-type-builder/services/schema-builder/content-type-builder.js b/packages/strapi-plugin-content-type-builder/services/schema-builder/content-type-builder.js index 99dc15ddbe..1434306413 100644 --- a/packages/strapi-plugin-content-type-builder/services/schema-builder/content-type-builder.js +++ b/packages/strapi-plugin-content-type-builder/services/schema-builder/content-type-builder.js @@ -12,13 +12,16 @@ const createSchemaHandler = require('./schema-handler'); module.exports = function createComponentBuilder() { return { setRelation({ key, modelName, plugin, attribute }) { - this.contentTypes.get(attribute.target).setAttribute( + const targetCT = this.contentTypes.get(attribute.target); + const targetAttribute = targetCT.getAttribute(attribute.targetAttribute); + targetCT.setAttribute( attribute.targetAttribute, generateRelation({ key, attribute, plugin, modelName, + targetAttribute, }) ); }, @@ -176,6 +179,8 @@ module.exports = function createComponentBuilder() { this.unsetRelation(oldAttribute); } + newAttribute.autoPopulate = newAttribute.autoPopulate || oldAttribute.autoPopulate; + return this.setRelation({ key, modelName: contentType.modelName, @@ -238,11 +243,18 @@ module.exports = function createComponentBuilder() { const createContentTypeUID = ({ name }) => `application::${nameToSlug(name)}.${nameToSlug(name)}`; -const generateRelation = ({ key, attribute, plugin, modelName }) => { +const generateRelation = ({ + key, + attribute, + plugin, + modelName, + targetAttribute = {}, +}) => { const opts = { via: key, plugin, columnName: attribute.targetColumnName || undefined, + autoPopulate: targetAttribute.autoPopulate, }; switch (attribute.nature) { diff --git a/packages/strapi-plugin-content-type-builder/services/schema-builder/index.js b/packages/strapi-plugin-content-type-builder/services/schema-builder/index.js index 12a343e3e8..d04817708d 100644 --- a/packages/strapi-plugin-content-type-builder/services/schema-builder/index.js +++ b/packages/strapi-plugin-content-type-builder/services/schema-builder/index.js @@ -119,12 +119,14 @@ function createSchemaBuilder({ components, contentTypes }) { targetAttribute, columnName, dominant, + autoPopulate, } = attribute; const attr = { unique: unique === true ? true : undefined, columnName: columnName || undefined, configurable: configurable === false ? false : undefined, + autoPopulate, }; if (!this.contentTypes.has(target)) { diff --git a/packages/strapi-plugin-content-type-builder/utils/attributes.js b/packages/strapi-plugin-content-type-builder/utils/attributes.js index 08459acbab..d28a6a4a32 100644 --- a/packages/strapi-plugin-content-type-builder/utils/attributes.js +++ b/packages/strapi-plugin-content-type-builder/utils/attributes.js @@ -85,6 +85,7 @@ const formatAttribute = (key, attribute, { model }) => { undefined ), unique: attribute.unique ? true : false, + autoPopulate: attribute.autoPopulate, }; } }; diff --git a/packages/strapi-plugin-users-permissions/config/schema.graphql b/packages/strapi-plugin-users-permissions/config/schema.graphql index f0c4e978df..d834b26ba4 100644 --- a/packages/strapi-plugin-users-permissions/config/schema.graphql +++ b/packages/strapi-plugin-users-permissions/config/schema.graphql @@ -66,6 +66,8 @@ module.exports = { plugin: 'users-permissions', resolverOf: 'UsersPermissions.getRole', resolver: async (obj, options, { context }) => { + context.params = {...context.params, ...options.input}; + await strapi.plugins[ 'users-permissions' ].controllers.userspermissions.getRole(context); @@ -78,6 +80,8 @@ module.exports = { plugin: 'users-permissions', resolverOf: 'UsersPermissions.getRoles', // Apply the `getRoles` permissions on the resolver. resolver: async (obj, options, { context }) => { + context.params = {...context.params, ...options.input}; + await strapi.plugins[ 'users-permissions' ].controllers.userspermissions.getRoles(context); @@ -195,10 +199,10 @@ module.exports = { resolverOf: 'Auth.register', resolver: async (obj, options, {context}) => { context.request.body = _.toPlainObject(options.input); - + await strapi.plugins['users-permissions'].controllers.auth.register(context); let output = context.body.toJSON ? context.body.toJSON() : context.body; - + checkBadRequest(output); return { user: output.user || output, jwt: output.jwt diff --git a/packages/strapi-plugin-users-permissions/controllers/Auth.js b/packages/strapi-plugin-users-permissions/controllers/Auth.js index ef721f9275..944ef31985 100644 --- a/packages/strapi-plugin-users-permissions/controllers/Auth.js +++ b/packages/strapi-plugin-users-permissions/controllers/Auth.js @@ -362,7 +362,7 @@ module.exports = { to: user.email, from: settings.from.email || settings.from.name - ? `"${settings.from.name}" <${settings.from.email}>` + ? `${settings.from.name} <${settings.from.email}>` : undefined, replyTo: settings.response_email, subject: settings.object, @@ -560,7 +560,7 @@ module.exports = { to: (user.toJSON ? user.toJSON() : user).email, from: settings.from.email && settings.from.name - ? `"${settings.from.name}" <${settings.from.email}>` + ? `${settings.from.name} <${settings.from.email}>` : undefined, replyTo: settings.response_email, subject: settings.object,