【四】鸡汤来咯开发学习笔记-51

前端 · 2024-08-03

1.在soup-chicken.schema中建立用户id让发布内容与用户关联,这样在知道谁发布的内容

"properties": {

"_id": {
    "description": "存储文档 ID(用户 ID),系统自动生成" //内容储存id生成
},
"user_id":{
    "bsonType": "string",
    "description": "作者id,可以参考uin-id-users表",
    "foreignKey": "uni-id-users._id",
    "defaultValue":{
        "$env": "uid"
    }
}

其中"foreignKey": "uni-id-users._id",是关联uni-id-users._id,这样我们现在发布的内容里面的数据就有我们的用户当前userid了
而如果关联表没有提供值,就会defaultValue默认用env云环境变量来提供uid

2.方便开发,在数据库自己的用户表中中加入 "role":["admin"],成为管理员,因为表结构里面用户角色是数组类型所以这样写

{
    "wx_openid": {
        "mp": "o51LL6_DfIOMkwIKb69miA_Kp2MY",
        "mp___UNI__6A102F8": "o51LL6_DfIOMkwIKb69miA_Kp2MY"
    },
    "third_party": {
        "mp_weixin": {
            "session_key": "jdug+a7ClbOyuq7MTlAywg=="
        }
    },
    "register_env": {
        "appid": "__UNI__6A102F8",
        "uni_platform": "mp-weixin",
        "os_name": "ios",
        "app_name": "鸡汤来咯",
        "app_version": "1.0.0",
        "app_version_code": "100",
        "channel": "1001",
        "client_ip": "127.0.0.1"
    },
    "register_date": 1722351004420,
    "dcloud_appid": [
        "__UNI__6A102F8"
    ],
    "username": "游客7fsv55545",
    "last_login_date": 1722601622743,
    "last_login_ip": "127.0.0.1",
    "token": [
        "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2NmE4ZmQ5ZWUwZWMxOTQzZWJmNjdhMzQiLCJyb2xlIjpbXSwicGVybWlzc2lvbiI6W10sInVuaUlkVmVyc2lvbiI6IjEuMC4xOCIsImlhdCI6MTcyMjU5OTQ1MSwiZXhwIjoxNzIyODU4NjUxfQ.QtFXmfVspS62GRLucD6fLR8y32x8DoYBFfbs1fXM__U",
        "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2NmE4ZmQ5ZWUwZWMxOTQzZWJmNjdhMzQiLCJyb2xlIjpbXSwicGVybWlzc2lvbiI6W10sInVuaUlkVmVyc2lvbiI6IjEuMC4xOCIsImlhdCI6MTcyMjU5OTQ3MiwiZXhwIjoxNzIyODU4NjcyfQ.ymfojJJDdXbbtzFXmwz6geSw2DlY8qyTak8CO34zS1w",
        "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2NmE4ZmQ5ZWUwZWMxOTQzZWJmNjdhMzQiLCJyb2xlIjpbXSwicGVybWlzc2lvbiI6W10sInVuaUlkVmVyc2lvbiI6IjEuMC4xOCIsImlhdCI6MTcyMjYwMDM4NSwiZXhwIjoxNzIyODU5NTg1fQ.3aHWvRTfn2L4HC2ojWk9tPfC0YePtEKPuug_nSPi_gA",
        "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2NmE4ZmQ5ZWUwZWMxOTQzZWJmNjdhMzQiLCJyb2xlIjpbXSwicGVybWlzc2lvbiI6W10sInVuaUlkVmVyc2lvbiI6IjEuMC4xOCIsImlhdCI6MTcyMjYwMDQwOCwiZXhwIjoxNzIyODU5NjA4fQ.-wHoQ_KVLUrdI46onBmN6DE04qFyxhZePkYJkfgDCPI",
        "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2NmE4ZmQ5ZWUwZWMxOTQzZWJmNjdhMzQiLCJyb2xlIjpbXSwicGVybWlzc2lvbiI6W10sInVuaUlkVmVyc2lvbiI6IjEuMC4xOCIsImlhdCI6MTcyMjYwMDY3MiwiZXhwIjoxNzIyODU5ODcyfQ.YC47cSdD6osA3_BfOhZDPCBNr3MSEOVxDWBThSEF138",
        "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2NmE4ZmQ5ZWUwZWMxOTQzZWJmNjdhMzQiLCJyb2xlIjpbXSwicGVybWlzc2lvbiI6W10sInVuaUlkVmVyc2lvbiI6IjEuMC4xOCIsImlhdCI6MTcyMjYwMDk4MSwiZXhwIjoxNzIyODYwMTgxfQ.fmDCko9imxf03Xy5K4AqzsAEjCWb3jPUGiyQSicTvfg",
        "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2NmE4ZmQ5ZWUwZWMxOTQzZWJmNjdhMzQiLCJyb2xlIjpbXSwicGVybWlzc2lvbiI6W10sInVuaUlkVmVyc2lvbiI6IjEuMC4xOCIsImlhdCI6MTcyMjYwMTA1NCwiZXhwIjoxNzIyODYwMjU0fQ.0gaCPg-YlSFiGr2NjaPtfSrSVE5ghrNqJQkG0DLgQBg",
        "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2NmE4ZmQ5ZWUwZWMxOTQzZWJmNjdhMzQiLCJyb2xlIjpbXSwicGVybWlzc2lvbiI6W10sInVuaUlkVmVyc2lvbiI6IjEuMC4xOCIsImlhdCI6MTcyMjYwMTIyNCwiZXhwIjoxNzIyODYwNDI0fQ.wmNh-Fh-VXGMfWB5tXeb3900oNDt7NCE0xVJQ49GKZs",
        "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2NmE4ZmQ5ZWUwZWMxOTQzZWJmNjdhMzQiLCJyb2xlIjpbXSwicGVybWlzc2lvbiI6W10sInVuaUlkVmVyc2lvbiI6IjEuMC4xOCIsImlhdCI6MTcyMjYwMTUzNywiZXhwIjoxNzIyODYwNzM3fQ.YfqldwJnoFPeDOXZFUk-jPxePBozs3fTHcbj0mpId-s",
        "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiI2NmE4ZmQ5ZWUwZWMxOTQzZWJmNjdhMzQiLCJyb2xlIjpbXSwicGVybWlzc2lvbiI6W10sInVuaUlkVmVyc2lvbiI6IjEuMC4xOCIsImlhdCI6MTcyMjYwMTYyMywiZXhwIjoxNzIyODYwODIzfQ.S2nbvP3syCzYUdtS9AKeVHUwZvnb4TSML0I1KbHTpYU"
    ],
    "gender": 2,
    "avatar": "https://mp-fa2cf1a5-2342-4992-bfcc-886723553f59.cdn.bspapp.com/userAvatar/2024-08-02/1722597569076.jpg",
    "role":["admin"]
}

3.在tool.js中写一个用户角色是否是管理员的判断的工具
运用此方法能直接获取当前用户信息getCurrentUserInfo()

export function isAdminRole(){
if(uniCloud.getCurrentUserInfo().role.includes('admin')){
    return true;
}else{
    return false;
}

}

4.然后再edit中引用,如果是管理员则发布按钮不一样

<view class="body">
                <button type="primary" v-if="isAdminRole()" :disabled="disabled ||statusDisabled" @click="onSubmit">发布鸡汤</button>
                <button type="primary" v-else :disabled="disabled ||statusDisabled" @click="onSubmit">提交审核</button>
            </view>

Theme Jasmine by Kent Liao