示例#1
0
def addRight(callerPriv):    
    '''
    Add a right item.
    
    parameters:
    token
    name: such as b999
    product: 
    
    
    ''' 
    user=request.params.get("name")    
    product=request.params.get("product")
    if user==None or product==None:
            return {"results":{"error":{"code":13,"msg":"Parameter missing."}}}

    uInfo=brauth.getUser(name=user)
    if uInfo==None:
        return {"results":{"error":{"code":23,"msg":"Can not find the target user."}}}
    elif "error" in uInfo:
        return {"results":uInfo}
    pInfo=brauth.getProduct(name=product)
    if pInfo==None:
        return {"results":{"error":{"code":24,"msg":"Can not find the target product."}}}
    elif "error" in pInfo:
        return {"results":pInfo}                
    try:
        brauth.addRight(callerPriv=callerPriv,uid=uInfo["_id"],pid=pInfo["_id"])
        return {"results":'OK'}                
    except Exception,e:
        print str(e)
        return {"results":{"error":{"code":16,"msg":"Add fail."}}}
示例#2
0
def delete_right(callerPriv):
    '''
    Delete a right item.
    
    parameters:
    token
    name
    product
    
    return:
    {results:OK}
    '''
    user=request.params.get("name")    
    product=request.params.get("product")
    if user==None or product==None:
            return {"results":{"error":{"code":13,"msg":"Parameter missing."}}}
    uInfo=brauth.getUser(name=user)
    if uInfo==None:
        return {"results":{"error":{"code":23,"msg":"Can not find the target user."}}}
    elif "error" in uInfo:
        return {"results":uInfo}
    pInfo=brauth.getProduct(name=product)
    if pInfo==None:
        return {"results":{"error":{"code":24,"msg":"Can not find the target product."}}}
    elif "error" in pInfo:
        return {"results":pInfo}
    brauth.removeRight(callerPriv=callerPriv,uid=uInfo['_id'],pid=pInfo['_id'])
    return {"results":"OK"}
示例#3
0
def getRight(callerPriv):    
    '''
    List rights items.
    
    parameters:
    name
    token
    
    return:
    {user:string,products:[p1,p2]}
    '''
    user=request.params.get("name") 
    if user==None:
            return {"results":{"error":{"code":13,"msg":"Parameter missing."}}}   
    userInfo=brauth.getUser(name=user)
    if userInfo==None:
        return {"results":{"error":{"code":21,"msg":"Can not find the user."}}}
    pids=brauth.getRight(callerPriv=callerPriv,uid=userInfo['_id'])
    products=[]
    if pids!=None:
        for pid in pids:
            product=brauth.getProduct(pid)
            if product!=None:
                products.append(product['name'])        
    return {"results":{"user":user,"products":products}}
示例#4
0
 def wrapper(*a, **ka):
     token = request.params.get("token")
     if token == None:
         return {
             "results": {
                 "error": {
                     "code": 12,
                     "msg": "Invalid token"
                 }
             }
         }
     else:
         uid = brauth.validateToken(token)
         #print "token:%s"%token
         #print "uid:%s"%uid
         if uid == -1:
             return {
                 "results": {
                     "error": {
                         "code": 12,
                         "msg": "Invalid token"
                     }
                 }
             }
         else:
             user = brauth.getUser(uid=uid)
             if user == None:
                 return {
                     "results": {
                         "error": {
                             "code": 14,
                             "msg": "Can not find the user."
                         }
                     }
                 }
             else:
                 if 'priviledge' in user:
                     priviledge = user['priviledge']
                     if priviledge > PRIVILEDGE_LEVEL_PM:
                         return {
                             "results": {
                                 "error": {
                                     "code": 15,
                                     "msg": "Insufficient right."
                                 }
                             }
                         }
                     else:
                         return func(callerPriv=priviledge, *a, **ka)
                 else:
                     return {
                         "results": {
                             "error": {
                                 "code": 26,
                                 "msg":
                                 "No priviledge data in user info."
                             }
                         }
                     }
示例#5
0
def addRight(callerPriv):
    '''
    Add a right item.
    
    parameters:
    token
    name: such as b999
    product: 
    
    
    '''
    user = request.params.get("name")
    product = request.params.get("product")
    if user == None or product == None:
        return {
            "results": {
                "error": {
                    "code": 13,
                    "msg": "Parameter missing."
                }
            }
        }

    uInfo = brauth.getUser(name=user)
    if uInfo == None:
        return {
            "results": {
                "error": {
                    "code": 23,
                    "msg": "Can not find the target user."
                }
            }
        }
    elif "error" in uInfo:
        return {"results": uInfo}
    pInfo = brauth.getProduct(name=product)
    if pInfo == None:
        return {
            "results": {
                "error": {
                    "code": 24,
                    "msg": "Can not find the target product."
                }
            }
        }
    elif "error" in pInfo:
        return {"results": pInfo}
    try:
        brauth.addRight(callerPriv=callerPriv,
                        uid=uInfo["_id"],
                        pid=pInfo["_id"])
        return {"results": 'OK'}
    except Exception, e:
        print str(e)
        return {"results": {"error": {"code": 16, "msg": "Add fail."}}}
示例#6
0
def delete_right(callerPriv):
    '''
    Delete a right item.
    
    parameters:
    token
    name
    product
    
    return:
    {results:OK}
    '''
    user = request.params.get("name")
    product = request.params.get("product")
    if user == None or product == None:
        return {
            "results": {
                "error": {
                    "code": 13,
                    "msg": "Parameter missing."
                }
            }
        }
    uInfo = brauth.getUser(name=user)
    if uInfo == None:
        return {
            "results": {
                "error": {
                    "code": 23,
                    "msg": "Can not find the target user."
                }
            }
        }
    elif "error" in uInfo:
        return {"results": uInfo}
    pInfo = brauth.getProduct(name=product)
    if pInfo == None:
        return {
            "results": {
                "error": {
                    "code": 24,
                    "msg": "Can not find the target product."
                }
            }
        }
    elif "error" in pInfo:
        return {"results": pInfo}
    brauth.removeRight(callerPriv=callerPriv,
                       uid=uInfo['_id'],
                       pid=pInfo['_id'])
    return {"results": "OK"}
示例#7
0
def resetPass(callerPriv):
    '''
    Parameters:
    name

    '''
    user = request.params.get("name")
    if user == None:
        return {
            "results": {
                "error": {
                    "code": 13,
                    "msg": "Parameter missing."
                }
            }
        }
    else:
        info = brauth.getUser(name=user)
        if info == None:
            return {
                "results": {
                    "error": {
                        "code": 14,
                        "msg": "Can not find the user."
                    }
                }
            }
        else:
            if callerPriv > info['priviledge']:
                return {
                    "results": {
                        "error": {
                            "code": 15,
                            "msg": "Insufficient right."
                        }
                    }
                }
            else:
                newpass = brauth.randomPass(6)
                brauth.setPass(user, newpass)
                brauth.sendMail(info['email'], user, newpass)
                return {'results': 'OK'}
示例#8
0
def resetPass(callerPriv):
    '''
    Parameters:
    name

    '''
    user=request.params.get("name")
    if user==None:
        return {"results":{"error":{"code":13,"msg":"Parameter missing."}}}
    else:
        info=brauth.getUser(name=user)
        if info==None:
            return {"results":{"error":{"code":14,"msg":"Can not find the user."}}}
        else:
            if callerPriv>info['priviledge']:
                return {"results":{"error":{"code":15,"msg":"Insufficient right."}}}
            else:
                newpass=brauth.randomPass(6)
                brauth.setPass(user,newpass)
                brauth.sendMail(info['email'],user,newpass)
                return {'results':'OK'}
示例#9
0
def getRight(callerPriv):
    '''
    List rights items.
    
    parameters:
    name
    token
    
    return:
    {user:string,products:[p1,p2]}
    '''
    user = request.params.get("name")
    if user == None:
        return {
            "results": {
                "error": {
                    "code": 13,
                    "msg": "Parameter missing."
                }
            }
        }
    userInfo = brauth.getUser(name=user)
    if userInfo == None:
        return {
            "results": {
                "error": {
                    "code": 21,
                    "msg": "Can not find the user."
                }
            }
        }
    pids = brauth.getRight(callerPriv=callerPriv, uid=userInfo['_id'])
    products = []
    if pids != None:
        for pid in pids:
            product = brauth.getProduct(pid)
            if product != None:
                products.append(product['name'])
    return {"results": {"user": user, "products": products}}
示例#10
0
 def wrapper(*a, **ka):
     token=request.params.get("token")
     if token==None:
         return {"results":{"error":{"code":12,"msg":"Invalid token"}}}
     else:
         uid=brauth.validateToken(token)
         #print "token:%s"%token
         #print "uid:%s"%uid
         if uid==-1:
             return {"results":{"error":{"code":12,"msg":"Invalid token"}}}
         else:
             user=brauth.getUser(uid=uid)
             if user==None:
                 return {"results":{"error":{"code":14,"msg":"Can not find the user."}}}
             else:
                 if 'priviledge' in user:
                     priviledge=user['priviledge']
                     if priviledge>PRIVILEDGE_LEVEL_PM:
                         return {"results":{"error":{"code":15,"msg":"Insufficient right."}}}
                     else:
                         return func(callerPriv=priviledge, *a, **ka)
                 else:
                     return {"results":{"error":{"code":26,"msg":"No priviledge data in user info."}}}