Example #1
0
def launch(dryRun=True):

    sg = proj._shotgundb.sg
    sgOperatorList = sg.find("CustomNonProjectEntity01", [],
                             fields=["sg_login", "sg_password", "sg_company"])

    dbUserDict = proj._db.findNodes("username:/.*/", asDict=True, keyField="username")
    #pprint(dbUserDict)

    for sgOpe in sgOperatorList:

        sSgLogin = sgOpe["sg_login"]
        sSgPwd = sgOpe["sg_password"]
        sCompany = sgOpe["sg_company"]["name"]
        bExists = (sSgLogin in dbUserDict)

        #print sSgLogin, fromUtf8(sCompany), bExists, sSgPwd
        if not sSgPwd:
            if not bExists:
                logMsg("Cannot create '{}': No password defined.".format(sSgLogin))
            continue
        elif len(sSgPwd) == 32:
            if not bExists:
                logMsg("Cannot create '{}': password already encrypted.".format(sSgLogin))
                continue
            sMd5Pwd = sSgPwd
        else:
            h = hashlib.md5()
            h.update(sSgPwd)
            sMd5Pwd = h.hexdigest()

        userData = {"username":sSgLogin,
                    "password": sMd5Pwd,
                    "company":fromUtf8(sCompany),
                    }

        #print userData
        if bExists:
            userNode = dbUserDict[sSgLogin]
            updData = dict((k, v) for k, v in userData.iteritems()
                                    if v != userNode.getField(k))

            if updData:
                print "\n", "update user:"******"create user:\n"
            sMsg += "login: {}\n".format(sSgLogin)
            sMsg += "pwd: {}\n".format(sSgPwd)
            print "\n" + sMsg
            if not dryRun:
                proj._db.createNode(userData)

        if (not dryRun) and (sSgPwd != sMd5Pwd):
            proj.updateSgEntity(sgOpe, sg_password=sMd5Pwd)
Example #2
0
def launch(dryRun=True):

    sg = proj._shotgundb.sg
    sgOperatorList = sg.find("CustomNonProjectEntity01", [],
                             fields=["sg_login", "sg_password", "sg_company"])

    dbUserList = proj._db.findNodes("username:/.*/")
    dbUserDict = dict((u.username, u) for u in dbUserList)

    for sgOp in sgOperatorList:

        sSgLogin, sSgPwd = sgOp["sg_login"], sgOp["sg_password"]
        sCompany = sgOp["sg_company"]["name"]
        #print sSgLogin, sSgPwd, toStr(sCompany)
        if not sSgPwd:
            continue

        sgData = {
                "username":sSgLogin,
                "password": sSgPwd,
                "company":fromUtf8(sCompany),
                }

        if sSgLogin in dbUserDict:

            userNode = dbUserDict[sSgLogin]
            updData = dict((k, v) for k, v in sgData.iteritems()
                                    if v != userNode.getField(k))

#            updData = {}
#            for k, v in sgData.iteritems():
#                print k, repr(v), repr(userNode.getField(k))

            #print userNode._data
            if updData:
                print "update user:"******"create user:", sgData
            if not dryRun:
                print proj._db.createNode(sgData)