Exemplo n.º 1
0
def retrieveLstDicFollower(request):
    #取得追隨者結果 字串
    strRetrieveResult = None
    #追隨者 列表
    lstDicFollower = []
    #團隊操作工具
    raidUtil = RaidUtility()
    if request.method == "POST":
        #取得 指定 strCIUserUID
        strCIUserUID = request.POST.get("strCIUserUID", None)
        #目標
        targetUser = None
        #優先查詢 指定user
        if strCIUserUID is not None:
            #若有指定 strCIUserUID 嘗試取得該 指定user
            userSpecified = raidUtil.getUserByCIUSerUID(strCIUserUID)
            if userSpecified is not None:
                #有找到 指定user 則取得 指定user 的追隨者
                targetUser = userSpecified
            else:
                #沒找到 指定user
                strRetrieveResult = "錯誤的 strCIUserUID 無法找到 指定user"
        elif request.user.is_authenticated():
            #有登入
            targetUser = request.user
        else:
            #沒登入 也沒 指定user
            strRetrieveResult = "必須登入 或 指定 strCIUserUID"
        #開始查詢
        if targetUser is not None:
            qsetCIUserFollower = raidUtil.getQsetFollower(user=targetUser)
            #轉換為 json 物件再回傳
            for ciuserFollower in qsetCIUserFollower:
                dicFollower = {
                    "strAvatarThumbnailUrl":
                    ciuserFollower.avatarThumbnail.url,
                    "strDisplayName": ciuserFollower.strDisplayName,
                    "strCIUserUID": ciuserFollower.strCIUserUID,
                    "intPointVolume": ciuserFollower.intPointVolume
                }
                lstDicFollower.append(dicFollower)
            strRetrieveResult = "完成取得 追隨者"
    else:
        strRetrieveResult = "只允許 POST 方式取得 追隨者"
    return JsonResponse(
        {
            "retrieve_result": strRetrieveResult,
            "lstDicFollower": lstDicFollower
        },
        safe=False)
Exemplo n.º 2
0
 def determineVisitorRole(self, userVisitor, userHost):
     raidUtil = RaidUtility()
     #預設為 路人
     strRole = "role:anonymous"
     #判斷 是否登入
     if userVisitor is not None:
         strRole = "role:ciuser"
         #判斷 是否為追隨者
         qsetCIUserFollower = raidUtil.getQsetFollower(user=userHost)
         for ciuserFollower in qsetCIUserFollower:
             if userVisitor.ciuser.strCIUserUID == ciuserFollower.strCIUserUID:
                 strRole = "role:follower"
                 break
         #判斷 是否為頻道主人
         if userVisitor.ciuser.strCIUserUID == userHost.ciuser.strCIUserUID:
             strRole = "role:host"
         #判斷 是否為領導人
         if raidUtil.isLeaderOrLeaderOfLeader(
                 user=userHost,
                 strLeaderUID=userVisitor.ciuser.strCIUserUID):
             strRole = "role:leader"
     return strRole