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
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
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
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
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
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
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
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
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
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
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
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
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
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