示例#1
0
def getAuthSql(start, end):
    dbIndex = None
    if start == end:
        dbIndex = start

    data = getDbs(dbIndex)

    db = connection
    cursor = db.cursor()

    sqlss = ''

    # per row for company
    for d in data:

        companyId = str(d[1])
        dbIndex = str(d[3])

        dbName = "curato" + dbIndex
        if not Tool.dbExist(dbName):
            continue

        sqls = "use %s;" % dbName

        tblName = companyId + "_staff_role_auth"

        createTbl = '''
        drop table if EXISTS `%s`;
        CREATE TABLE `%s` (
        `id`  int(5) UNSIGNED  NOT NULL AUTO_INCREMENT ,
        `role_id`  int(5) NULL ,
        `auth`  text NULL ,
        PRIMARY KEY (`id`)
        )
        ;
        '''
        createTbl = createTbl % (tblName, tblName)

        sqls += createTbl

        oldTbl = companyId + "_user_role_auth"

        if Tool.tblExist(dbName, oldTbl):

            authSql = "select * from %s " % oldTbl
            cursor.execute("use %s" % dbName)
            cursor.execute(authSql)
            res = cursor.fetchall()

            insertSql = "insert into %s (role_id, auth) values " % tblName
            insertCount = 0

            for a in res:
                authStr = a[4]
                roleId = a[1]
                authStr = authStr.strip(',')
                auth = convertAuth(authStr)
                if len(auth) > 0:
                    auth = ','.join(str(n) for n in auth)
                else:
                    auth = ''

                insertCount += 1

                insertSql += " ('%s', '%s')," % (roleId, auth)

            if insertCount:
                insertSql = insertSql.rstrip(',')
                insertSql += ';'
            else:
                insertSql = ''

            sqls += insertSql

        sqlss += sqls

    return sqlss