删除不安全后无法添加食谱并出现错误
After removing insecure unable to add recipes and getting error
删除不安全因素后,我无法添加新配方并收到以下错误消息访问被拒绝[403]cfs_base-package.js:108
但是,如果我再次添加不安全的消息,我可以添加食谱 again.Can 请你帮我解决这个问题
完整的源代码 Github
collections.js
Recipes = new Mongo.Collection('recipes');
Reviews = new Mongo.Collection('reviews');
RecipesImages = new FS.Collection("recipesImages", {
stores: [new FS.Store.GridFS("recipesImages")]
});
server/permissions.js
RecipesImages.allow({
insert: function(userId, doc) {
return true;
},
update: function(userId, doc, fieldNames, modifier) {
return true;
},
remove: function(userId, doc) {
return false;
},
download: function(userId,doc) {
return true;
},
fetch: null
});
schemas.js
Recipes.attachSchema(new SimpleSchema({
ownerId: {
type: String
},
ownerName: {
type: String
},
voters:{
type:Array,
optional:true
},
'voters.$':{
type:String
},
name: {
type: String,
label: "Recipe Name",
max: 100
},
ingredients: {
type: [Object],
minCount: 1
},
"ingredients.$.name":{
type: String
},
"ingredients.$.amount": {
type: String
},
description: {
type: String,
label: "How to prepare ",
},
time: {
type: Number,
label: "Time (Minutes)",
min:0
},
likes:{
type:Number,
optional:true
},
image: {
type: String,
autoform: {
afFieldInput: {
type: "cfs-file",
collection: 'recipesImages',
label: 'Recipe Picture'
}
}
}
}));
从你的回购中得到这个工作,主要问题是当你允许插入到 RecipesImages
FS 集合时,你没有对 Recipes
集合做同样的事情,所以当它试图插入时通过简单的模式,它可以完成图像部分,但不能完成食谱文档的其余部分。
当然,为了安全起见,您可能希望加强此功能,但以下内容应该有效:
Recipes.allow({
insert: function(userId, doc) {
return true;
}
});
在未填充 ownerName 字段上弹出的模式也存在验证错误,因此我不得不将其设置为可选,尽管我猜你是否可以使用不安全的方式插入这只是一个错字:
ownerName: {
type: String,
optional: true
}
删除不安全因素后,我无法添加新配方并收到以下错误消息访问被拒绝[403]cfs_base-package.js:108 但是,如果我再次添加不安全的消息,我可以添加食谱 again.Can 请你帮我解决这个问题 完整的源代码 Github
collections.js
Recipes = new Mongo.Collection('recipes');
Reviews = new Mongo.Collection('reviews');
RecipesImages = new FS.Collection("recipesImages", {
stores: [new FS.Store.GridFS("recipesImages")]
});
server/permissions.js
RecipesImages.allow({
insert: function(userId, doc) {
return true;
},
update: function(userId, doc, fieldNames, modifier) {
return true;
},
remove: function(userId, doc) {
return false;
},
download: function(userId,doc) {
return true;
},
fetch: null
});
schemas.js
Recipes.attachSchema(new SimpleSchema({
ownerId: {
type: String
},
ownerName: {
type: String
},
voters:{
type:Array,
optional:true
},
'voters.$':{
type:String
},
name: {
type: String,
label: "Recipe Name",
max: 100
},
ingredients: {
type: [Object],
minCount: 1
},
"ingredients.$.name":{
type: String
},
"ingredients.$.amount": {
type: String
},
description: {
type: String,
label: "How to prepare ",
},
time: {
type: Number,
label: "Time (Minutes)",
min:0
},
likes:{
type:Number,
optional:true
},
image: {
type: String,
autoform: {
afFieldInput: {
type: "cfs-file",
collection: 'recipesImages',
label: 'Recipe Picture'
}
}
}
}));
从你的回购中得到这个工作,主要问题是当你允许插入到 RecipesImages
FS 集合时,你没有对 Recipes
集合做同样的事情,所以当它试图插入时通过简单的模式,它可以完成图像部分,但不能完成食谱文档的其余部分。
当然,为了安全起见,您可能希望加强此功能,但以下内容应该有效:
Recipes.allow({
insert: function(userId, doc) {
return true;
}
});
在未填充 ownerName 字段上弹出的模式也存在验证错误,因此我不得不将其设置为可选,尽管我猜你是否可以使用不安全的方式插入这只是一个错字:
ownerName: {
type: String,
optional: true
}