| return $this->user;␊ |
| }␊ |
| ␊ |
| function clean_ssh_key()␊ |
| /**␊ |
| * Check an ssh key.␊ |
| *␊ |
| * It will throw a Pluf_Form_Invalid exception if it cannot␊ |
| * validate the key.␊ |
| *␊ |
| * @param $key string The key␊ |
| * @param $user int The user id of the user of the key (0)␊ |
| * @return string The clean key␊ |
| */␊ |
| public static function checkSshKey($key, $user=0)␊ |
| {␊ |
| $key = trim($this->cleaned_data['ssh_key']);␊ |
| $key = trim($key);␊ |
| if (strlen($key) == 0) {␊ |
| return '';␊ |
| }␊ |
|
| if (!preg_match('#^ssh\-[a-z]{3}\s(\S+)\s\S+$#', $key, $matches)) {␊ |
| throw new Pluf_Form_Invalid(__('The format of the key is not valid. It must start with ssh-dss or ssh-rsa, a long string on a single line and at the end a comment.'));␊ |
| }␊ |
| if (Pluf::f('idf_strong_key_check', false)) {␊ |
| $tmpfile = Pluf::f('tmp_folder', '/tmp').$user.'-key';␊ |
| file_put_contents($tmpfile, $key, LOCK_EX);␊ |
| $cmd = Pluf::f('idf_exec_cmd_prefix', '').␊ |
| 'ssh-keygen -l -f '.escapeshellarg($tmpfile);␊ |
| exec($cmd, $out, $return);␊ |
| unlink($tmpfile);␊ |
| if ($return != 0) {␊ |
| throw new Pluf_Form_Invalid(__('Please check the key as it does not appears to be a valid key.'));␊ |
| }␊ |
| }␊ |
| return $key;␊ |
| }␊ |
| ␊ |
| function clean_ssh_key()␊ |
| {␊ |
| return self::checkSshKey($this->cleaned_data['ssh_key'], ␊ |
| $this->user->id);␊ |
| }␊ |
| ␊ |
| function clean_last_name()␊ |
| {␊ |
| $last_name = trim($this->cleaned_data['last_name']);␊ |