Esempio n. 1
0
    def track_create(self):
        """ Update expected state for staged user creation """
        self.attrs = dict(
            dn=self.dn,
            uid=[self.uid],
            givenname=[self.givenname],
            sn=[self.sn],
            homedirectory=[u'/home/%s' % self.uid],
            displayname=[u'%s %s' % (self.givenname, self.sn)],
            cn=[u'%s %s' % (self.givenname, self.sn)],
            initials=[u'%s%s' % (self.givenname[0], self.sn[0])],
            objectclass=objectclasses.user_base,
            description=[u'__no_upg__'],
            ipauniqueid=[u'autogenerate'],
            uidnumber=[u'-1'],
            gidnumber=[u'-1'],
            krbprincipalname=[u'%s@%s' % (self.uid, self.api.env.realm)],
            krbcanonicalname=[u'%s@%s' % (self.uid, self.api.env.realm)],
            mail=[u'%s@%s' % (self.uid, self.api.env.domain)],
            gecos=[u'%s %s' % (self.givenname, self.sn)],
            loginshell=[u'/bin/sh'],
            has_keytab=False,
            has_password=False,
            nsaccountlock=[u'true'],
        )

        for key in self.kwargs:
            if key == u'krbprincipalname':
                self.attrs[key] = [
                    u'%s@%s' % ((self.kwargs[key].split('@'))[0].lower(),
                                (self.kwargs[key].split('@'))[1])
                ]
                self.attrs[u'krbcanonicalname'] = self.attrs[key]
            elif key == u'manager':
                self.attrs[key] = [self.kwargs[key]]
            elif key == u'ipasshpubkey':
                self.attrs[u'sshpubkeyfp'] = [sshpubkeyfp]
                self.attrs[key] = [self.kwargs[key]]
            elif key == u'random' or key == u'userpassword':
                self.attrs[u'krbextradata'] = [Fuzzy(type=bytes)]
                self.attrs[u'krbpasswordexpiration'] = [
                    fuzzy_dergeneralizedtime
                ]
                self.attrs[u'krblastpwdchange'] = [fuzzy_dergeneralizedtime]
                self.attrs[u'krbprincipalkey'] = [Fuzzy(type=bytes)]
                self.attrs[u'userpassword'] = [Fuzzy(type=bytes)]
                self.attrs[u'has_keytab'] = True
                self.attrs[u'has_password'] = True
                if key == u'random':
                    self.attrs[u'randompassword'] = fuzzy_string
            else:
                self.attrs[key] = [self.kwargs[key]]

        self.exists = True
Esempio n. 2
0
 def test_create_with_random_passwd(self):
     """ Create user with random password """
     testuser = UserTracker(name=u'tuser1',
                            givenname=u'Test',
                            sn=u'Tuser1',
                            random=True)
     testuser.track_create()
     testuser.attrs.update(randompassword=fuzzy_password,
                           has_keytab=True,
                           has_password=True,
                           krbextradata=[Fuzzy(type=bytes)],
                           krbpasswordexpiration=[fuzzy_dergeneralizedtime],
                           krblastpwdchange=[fuzzy_dergeneralizedtime])
     command = testuser.make_create_command()
     result = command()
     testuser.check_create(result)
     testuser.delete()