예제 #1
0
파일: user.py 프로젝트: samuelbaizg/ssguan
def create_operation(operation_key, handler_classes, resource_oql, modifier_id):
    if type(handler_classes) == str:        
        handler_classes = [handler_classes]
        
    query = Operation.all()
    for handler_class in handler_classes:
        query.filter("handler_classes like ", "%%%s%%" % handler_class)
        if query.count() > 0:
            raise CoreError("One handler only can have one corresponding operation. The handler %s is corresponding to multiple operations." % handler_class)
    query = Operation.all()
    query.filter("operation_key =", operation_key)
    operation = Operation(operation_key=operation_key)
    operation.handler_classes = ",".join(handler_classes)
    operation.resource_oql = resource_oql
    operation.create(modifier_id)
    return operation
예제 #2
0
파일: user.py 프로젝트: samuelbaizg/ssguan
def get_operation(operation_key=None, handler_class=None):
    if operation_key is None and handler_class is None:
        raise CoreError("operation_key and handler_class can't be empty meantime.")
    
    query = Operation.all()
    if operation_key is not None:
        query.filter("operation_key =", operation_key)
    if handler_class is not None:
        query.filter("handler_classes like ", "%%%s%%" % handler_class)
    operation = query.get()
    return operation
예제 #3
0
파일: user.py 프로젝트: samuelbaizg/ssguan
def fetch_operations(role_id):
    query = Operation.all("a")
    query.model(RoleOperation.get_modelname(), "b", join="inner", on="a.operation_key = b.operation_key")
    query.filter("b.role_id =", role_id)
    return query.fetch()