示例#1
0
文件: tests.py 项目: hqman/dztong-cms
 def testParseStr(self):
     result=Discuz.parse_str("a=1&b=2")
     self.assertEqual(len(result),2)
     self.assertTrue('a' in result)
     self.assertTrue('b' in result)
     self.assertTrue(result['a']=='1')
     self.assertTrue(result['b']=='2')
示例#2
0
文件: api.py 项目: hqman/dztong-cms
    def syn_login(self,uid):
        '''
        同步登录
        @param uid 
        '''
        #检查是否允许

        if settings.API_SYNLOGIN:
            #获取对应用户
            try:
         
                user=User.objects.extra(where=['reference_id=%s'],params=[uid])[0]
                username=user.username
            except:
                username=''
            
                 
#                from django.contrib.auth import login,get_backends
#                backend=get_backends()[0]
#                user.backend = "%s.%s" % (backend.__module__, backend.__class__.__name__)
#                login(self.request,user)
            resp=HttpResponse()
            
            resp['P3P: CP']='CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR'
            value=Discuz.discuzAuthcodeEncode('%s,%s' % (uid,username), settings.API_KEY)
            resp.set_cookie(settings.UC_COOKIE_KEY, value, 86400*365,86400*365)
            return resp
                             
          
            
           
        return HttpResponse(settings.API_RETURN_FORBIDDEN)
示例#3
0
    def uc_api_input(self,data):
    
     
        postdata =("%s&agent=%s&time=%s" % (data, Discuz.MD5(self.request.META["HTTP_USER_AGENT"]), Discuz.unixTimestamp()))
        postdata = Discuz.discuzAuthcodeEncode(postdata, settings.API_KEY);

        return postdata
示例#4
0
文件: tests.py 项目: hqman/dztong-cms
 def testDiscuzAuthcode(self):
     s= Discuz.discuzAuthcode("123456", "123456", Discuz.ENCODE, 1000)
     print s
     self.assertTrue( Discuz.discuzAuthcode(s, '123456', Discuz.DECODE,1000)=="123456")
     s= Discuz.discuzAuthcode("中文", "中文密码", Discuz.ENCODE, 1000)
     self.assertTrue( Discuz.discuzAuthcode(s, '中文密码', Discuz.DECODE,1000)=="中文")
     s= Discuz.discuzAuthcode(u"中文".encode('utf-8'), u"中文密码".encode('utf-8'), Discuz.ENCODE, 1000)
     self.assertTrue( Discuz.discuzAuthcode(s, u'中文密码'.encode('utf-8'), Discuz.DECODE,1000)==u"中文".encode('utf-8'))
示例#5
0
文件: tests.py 项目: hqman/dztong-cms
    def testParse(self):

        print     Discuz.parse_str(Discuz.discuzAuthcode('9949DdD0eUd4j+HIq8SIR4zDxr02OKaqn2+0D8X0+XDuZNs17mpg7K5xXdTe/qHLBul0p25SD+Q', settings.API_KEY,Discuz.DECODE))
示例#6
0
文件: tests.py 项目: hqman/dztong-cms
 def testUnixTimestamp(self):
     print Discuz.unixTimestamp()
示例#7
0
文件: tests.py 项目: hqman/dztong-cms
 def testRandomStr(self):
     self.assertTrue(len( Discuz.randomString(256))==256) 
示例#8
0
文件: tests.py 项目: hqman/dztong-cms
 def testGetKey(self):
     self.assertTrue( len(Discuz.getKey('1234567890'))==256)
示例#9
0
文件: tests.py 项目: hqman/dztong-cms
 def testBase64(self):
     s= Discuz.base64Encode('123456')
     self.assertTrue('123456'==Discuz.base64Decode(s))
示例#10
0
文件: tests.py 项目: hqman/dztong-cms
 def testFileExist(self):
     self.assertTrue(Discuz.fileExists(r'c:/dt.bak'))
示例#11
0
文件: tests.py 项目: hqman/dztong-cms
 def testCutString(self):
     self.assertEqual(Discuz.cutString('abc',0),'abc')
示例#12
0
文件: views.py 项目: hqman/dztong-cms
def index(request):
    '''
    接受来自ucenter的调用
    qs 是一个词典,action,time每次均会有,其它的根据实际的情况有不同的参数
    
    通常url参数会有code,time但test action可能没有,下面代码需要重构,等确定那些有那些没有
    '''
    #目前不能处理非gbk编码

    code=request.REQUEST.get('code','').encode('gbk')
    
    try:
        time_t=int(request.REQUEST.get('time',0))
    except:
        time_t=0
        
   
    qs=Discuz.parse_str(Discuz.discuzAuthcode(code, settings.API_KEY,Discuz.DECODE))
    
    log(qs)
    time=int(qs.get('time',0))
    log("time=%s&code=%s" %(time_t,code))
    #timestamp = Discuz.unixTimestamp()
    
    
    if time_t and  (time_t - time> 3600): #3600秒 延迟
        return HttpResponse('Authracation has expiried')
 
    if not qs:
        return HttpResponse('Invalid Request')
  

    action = qs.get('action','')
    if action=='test':
        #测试
        return HttpResponse(settings.API_RETURN_SUCCEED)
    elif action=='deleteuser':
        #删除用户
        return API().delete_user(qs.get('ids',''))
     
    elif action=='renameuser':
        #改名用户
        return API().rename_user(qs.get('uid',0),qs.get('oldusername'),qs.get('newusername'))
    elif action=='updatepw':
        #更新用户密码
        return API().update_pw(qs.get('username',''),qs.get('password',''))
    
    elif action=='gettag':
        #获得tag
        return API().get_tag(qs.get('id',''))
    elif action=='synlogin':
        #同步登录
     
        return API(request).syn_login(qs.get('uid',0))
 
     
    elif action=='synlogout':
        #同步退出
        return API(request).syn_logout()
    elif action=='updatebadwords':
        #更新过滤词
        #return API().update_bad_words()
        return HttpResponse(settings.API_RETURN_FORBIDDEN)
    elif action=='updatehosts':
        return HttpResponse(settings.API_RETURN_FORBIDDEN)
    elif action=='updateapps':
        return HttpResponse(settings.API_RETURN_FORBIDDEN)
    elif action=='updateclient':
        return HttpResponse(settings.API_RETURN_FORBIDDEN)
    elif action=='updatecredit':
        return HttpResponse(settings.API_RETURN_FORBIDDEN)
    elif action=='getcreditsettings':
        return HttpResponse(settings.API_RETURN_FORBIDDEN)
    elif action=='getcredit':
        return HttpResponse(settings.API_RETURN_FORBIDDEN)
    
    
    return HttpResponse(settings.API_RETURN_SUCCEED)