'Process the passwd entry fields and primary group memberships.'

def ParsePasswdEntry(self, line):

    fields = ('uname', 'passwd', 'uid', 'gid', 'fullname', 'homedir', 'shell')
    if line:
        rslt = dict(zip(fields, line.split(':')))
        user = self.entry.setdefault(rslt['uname'], rdf_client.User())
        user.username = rslt['uname']
        user.pw_entry.store = self.GetPwStore(rslt['passwd'])
        if (user.pw_entry.store == self.base_store):
            user.pw_entry.hash_type = self.GetHashType(rslt['passwd'])
        if rslt['uid']:
            user.uid = int(rslt['uid'])
        if rslt['gid']:
            user.gid = int(rslt['gid'])
        user.homedir = rslt['homedir']
        user.shell = rslt['shell']
        user.full_name = rslt['fullname']
        uids = self.uids.setdefault(user.uid, set())
        uids.add(user.username)
        gid = self.gids.setdefault(user.gid, set())
        gid.add(user.username)
