Apostrophe cms 创建用户配置文件块

Apostrophe cms 创建用户配置文件块,apostrophe-cms,Apostrophe Cms,我想创建一个用户配置文件,它加入撇号user,以便管理员可以为特定用户公开配置文件。我知道这是不推荐的,但我认为这是唯一的选择,有可能在这一边的人有一个公共配置文件,并能够登录和编辑他们的配置文件。否则,管理员需要更改数百人的用户配置文件,这将导致全职工作。现在不需要用户注册,但将来可能需要用户注册,因此我的模块应该与Apostrophe注册兼容 开始很简单: //lib/modules/profiles/index.js module.exports={ 扩展:'撇号片段', 名称:'prof

我想创建一个用户配置文件,它加入撇号user,以便管理员可以为特定用户公开配置文件。我知道这是不推荐的,但我认为这是唯一的选择,有可能在这一边的人有一个公共配置文件,并能够登录和编辑他们的配置文件。否则,管理员需要更改数百人的用户配置文件,这将导致全职工作。现在不需要用户注册,但将来可能需要用户注册,因此我的模块应该与Apostrophe注册兼容

开始很简单:

//lib/modules/profiles/index.js
module.exports={
扩展:'撇号片段',
名称:'profile',
标签:“配置文件”,
pluralLabel:“配置文件”,
slugPrefix:“profile-”,
添加字段:[
{
名称:“\u用户”,
标签:“用户”,
类型:“joinByOne”,
withType:“撇号用户”,
idField:“用户ID”,
withJoins:对
}
]
};
这是碎片小部件:

//lib/modules/profiles widgets/views/widget.html
{%用于数据中的片段。小部件。\u片段%}
  • {{piece.\u user.username}} {{piece.\u user.title}} {{piece.\u user.firstName}} {{piece.\u user.lastName}} {{piece.\u user.email} {{apos.area(piece._user,'bio',{edit:false}}}
  • {%endfor%}
    我将
    \u缩略图
    bio
    字段添加到
    撇号用户

    //lib/modules/撇号users/index.js
    module.exports={
    beforeConstruct:函数(自身、选项){
    options.addFields=[
    {
    名称:“_缩略图”,
    类型:“joinByOne”,
    withType:'撇号图像',
    标签:“个人资料图片”,
    帮助:“选择个人资料图片”,
    过滤器:{
    预测:{
    附件:对,,
    描述:对,
    标题:真实
    }
    }
    },
    {
    姓名:'生物',
    标签:“传记”,
    类型:'区域',
    帮助:'选择传记',
    选项:{
    限额:1,,
    小部件:{
    “撇号富文本”:{
    工具栏:[“粗体”],
    控制:{
    可移动:假,
    可克隆性:错误,
    对,,
    位置:'右上方'
    }
    }
    }
    }
    }
    ].concat(options.addFields | |[]);
    }
    };
    
    登录后,我可以看到
    widget.html
    中定义的所有字段,但是如果我注销,我什么也看不到。我希望这是因为用户被取消发布。 我试图在
    撇号用户
    中添加一个
    已发布的
    字段,但没有成功

    //lib/modules/撇号users/index.js
    ...
    {
    类型:'布尔',
    名称:'已发布',
    标签:“已发布”,
    戴夫:是的,
    },
    ...
    
    我做错了什么


    作为第二个问题,我想知道是否可以允许登录用户编辑自己的个人资料?

    撇号2中没有直接支持将用户用作公共可用数据。一个常见的解决方法是创建一个“Profile”工件类型或类似的东西,然后添加一个连接以将其连接到用户(如果这有助于组织)

    在用户模块上设置
    adminOnly:false
    ,您可以直接配置权限,但这会使用户的安全问题成为您的一部分职责

    更新: 在这样的项目中编写
    lib/modules/撇号users/index.js
    会将
    published
    字段添加回用户:

    module.exports={
    defaultRemoveFields:[],
    defaultRemoveFilters:[],
    defaultRemoveColumns:[]
    };
    
    默认情况下,这些数组包括
    “已发布的”
    ,从UI中隐藏发布选项


    一旦发布,它们将在注销时可见。同样,在执行此操作时,请确保考虑到安全问题。

    “当添加连接以将其连接到用户”这正是我所做的。更具体地说,我只需要帮助将已发布字段添加回用户,而我这样做是行不通的。你也可以在文档中说,我可以把它添加回去,但这不起作用,至少不是我这样做的。你能再看一下我的问题吗?Thx'defaultRemoveFields'为我做的我不知道这个选项,我想从语句中添加它们作为正常字段,如上图所示。也许这有点误导,可以根据您的解释进行更新。当然可以。我已经把文件弄清楚了。