コード例 #1
0
    def validate_gen_key(self, attrs):
        username = attrs.get("username", "manual")
        auto_gen_key = attrs.pop("auto_generate_key", False)
        protocol = attrs.get("protocol")

        if protocol not in SystemUser.SUPPORT_PUSH_PROTOCOLS:
            return attrs

        # 自动生成
        if auto_gen_key and not self.instance:
            password = SystemUser.gen_password()
            attrs["password"] = password
            if protocol == SystemUser.Protocol.ssh:
                private_key, public_key = SystemUser.gen_key(username)
                attrs["private_key"] = private_key
                attrs["public_key"] = public_key
        # 如果设置了private key,没有设置public key则生成
        elif attrs.get("private_key", None):
            private_key = attrs["private_key"]
            password = attrs.get("password")
            public_key = ssh_pubkey_gen(private_key,
                                        password=password,
                                        username=username)
            attrs["public_key"] = public_key
        return attrs
コード例 #2
0
    def _validate_gen_key(self, attrs):
        username = attrs.get('username', 'manual')
        auto_gen_key = attrs.pop('auto_generate_key', False)
        protocol = attrs.get('protocol')

        if protocol not in SystemUser.SUPPORT_PUSH_PROTOCOLS:
            return attrs

        # 自动生成
        if auto_gen_key and not self.instance:
            password = SystemUser.gen_password()
            attrs['password'] = password
            if protocol == SystemUser.Protocol.ssh:
                private_key, public_key = SystemUser.gen_key(username)
                attrs['private_key'] = private_key
                attrs['public_key'] = public_key
        # 如果设置了private key,没有设置public key则生成
        elif attrs.get('private_key'):
            private_key = attrs['private_key']
            password = attrs.get('password')
            public_key = ssh_pubkey_gen(private_key,
                                        password=password,
                                        username=username)
            attrs['public_key'] = public_key
        return attrs
コード例 #3
0
ファイル: user.py プロジェクト: issacmark/jumpserver
    def gen_keys(self):
        password = self.cleaned_data.get('password', '') or None
        private_key_file = self.cleaned_data['private_key_file']
        public_key = private_key = None

        if private_key_file:
            private_key = private_key_file.read().strip().decode('utf-8')
            public_key = ssh_pubkey_gen(private_key=private_key, password=password)
        return private_key, public_key
コード例 #4
0
ファイル: user.py プロジェクト: achachadra7/jumpserver
    def gen_keys(self):
        password = self.cleaned_data.get('password', '') or None
        private_key_file = self.cleaned_data['private_key_file']
        public_key = private_key = None

        if private_key_file:
            private_key = private_key_file.read().strip().decode('utf-8')
            public_key = ssh_pubkey_gen(private_key=private_key, password=password)
        return private_key, public_key
コード例 #5
0
ファイル: forms.py プロジェクト: guoxc/jumpserver_qb
    def update(self, system_user):
        password = self.cleaned_data.get('password')
        private_key_file = self.cleaned_data.get('private_key_file')

        if private_key_file:
            private_key = private_key_file.read().strip()
            public_key = ssh_pubkey_gen(private_key=private_key)
        else:
            private_key = None
            public_key = None
        system_user.set_auth(password=password, private_key=private_key, public_key=public_key)
        return system_user
コード例 #6
0
ファイル: forms.py プロジェクト: guoxc/jumpserver_qb
    def save(self, commit=True):
        # Because we define custom field, so we need rewrite :method: `save`
        password = self.cleaned_data.get('password', None)
        private_key_file = self.cleaned_data.get('private_key_file')
        system_user = super(forms.ModelForm, self).save()

        if private_key_file:
            private_key = private_key_file.read().strip().decode('utf-8')
            public_key = ssh_pubkey_gen(private_key=private_key)
        else:
            private_key = public_key = None
        system_user.set_auth(password=password, private_key=private_key, public_key=public_key)
        return system_user
コード例 #7
0
    def save(self, commit=True):
        # Because we define custom field, so we need rewrite :method: `save`
        admin_user = super(AdminUserForm, self).save(commit=commit)
        password = self.cleaned_data['password']
        private_key = self.cleaned_data['private_key_file']

        if password:
            admin_user.password = password
        if private_key:
            public_key = ssh_pubkey_gen(private_key)
            admin_user.private_key = private_key
            admin_user.public_key = public_key
        admin_user.save()
        return admin_user
コード例 #8
0
ファイル: forms.py プロジェクト: guoxc/jumpserver_qb
    def save(self, commit=True):
        # Because we define custom field, so we need rewrite :method: `save`
        admin_user = super().save(commit=commit)
        password = self.cleaned_data['password']
        private_key = self.cleaned_data['private_key_file']
        public_key = None

        if not password:
            password = None

        if private_key:
            public_key = ssh_pubkey_gen(private_key, password=password)

        admin_user.set_auth(password=password, public_key=public_key, private_key=private_key)
        return admin_user
コード例 #9
0
    def save(self, commit=True):
        # Because we define custom field, so we need rewrite :method: `save`
        system_user = super(SystemUserUpdateForm, self).save(commit=commit)
        password = self.cleaned_data['password']
        private_key_file = self.cleaned_data.get('private_key_file')

        if system_user.auth_method == 'P' and password:
            system_user.password = password
        elif system_user.auth_method == 'K' and private_key_file:
            private_key = private_key_file.read().strip()
            public_key = ssh_pubkey_gen(private_key=private_key)
            system_user.private_key = private_key
            system_user.public_key = public_key
        system_user.save()
        return self.instance
コード例 #10
0
ファイル: forms.py プロジェクト: guoxc/jumpserver_qb
    def save(self, commit=True):
        # Because we define custom field, so we need rewrite :method: `save`
        system_user = super().save()
        password = self.cleaned_data.get('password', None)
        private_key_file = self.cleaned_data.get('private_key_file')
        auto_generate_key = self.cleaned_data.get('auto_generate_key')
        private_key = None
        public_key = None

        if auto_generate_key:
            logger.info('Auto set system user auth')
            system_user.auto_gen_auth()
        else:
            if private_key_file:
                private_key = private_key_file.read().strip().decode('utf-8')
                public_key = ssh_pubkey_gen(private_key=private_key)
            system_user.set_auth(password=password, private_key=private_key, public_key=public_key)
        return system_user
コード例 #11
0
ファイル: system_user.py プロジェクト: zhoudl/jumpserver
 def validate(self, attrs):
     username = attrs.get("username", "manual")
     protocol = attrs.get("protocol")
     auto_gen_key = attrs.get("auto_generate_key", False)
     if auto_gen_key:
         password = SystemUser.gen_password()
         attrs["password"] = password
         if protocol == SystemUser.PROTOCOL_SSH:
             private_key, public_key = SystemUser.gen_key(username)
             attrs["private_key"] = private_key
             attrs["public_key"] = public_key
             # 如果设置了private key,没有设置public key则生成
     elif attrs.get("private_key", None):
         private_key = attrs["private_key"]
         password = attrs.get("password")
         public_key = ssh_pubkey_gen(private_key, password=password,
                                     username=username)
         attrs["public_key"] = public_key
     attrs.pop("auto_generate_key", None)
     return attrs
コード例 #12
0
    def save(self, commit=True):
        # Because we define custom field, so we need rewrite :method: `save`
        system_user = super(SystemUserForm, self).save(commit=commit)
        password = self.cleaned_data['password']
        private_key_file = self.cleaned_data.get('private_key_file')

        if system_user.auth_method == 'P':
            if password:
                system_user.password = password
        elif system_user.auth_method == 'K':
            if self.cleaned_data['auto_generate_key']:
                private_key, public_key = ssh_key_gen(
                    username=system_user.name)
                logger.info('Generate private key and public key')
            else:
                private_key = private_key_file.read().strip()
                public_key = ssh_pubkey_gen(private_key=private_key)
            system_user.private_key = private_key
            system_user.public_key = public_key
        system_user.save()
        return self.instance
コード例 #13
0
ファイル: base.py プロジェクト: wwjiang007/jumpserver
 def gen_keys(self, private_key=None, password=None):
     if private_key is None:
         return None, None
     public_key = ssh_pubkey_gen(private_key=private_key, password=password)
     return private_key, public_key
コード例 #14
0
ファイル: base.py プロジェクト: achachadra7/jumpserver
 def gen_keys(self, private_key=None, password=None):
     if private_key is None:
         return None, None
     public_key = ssh_pubkey_gen(private_key=private_key, password=password)
     return private_key, public_key