function make_follow_url($uname) { return make_ext_url('messages', 'follow', $uname); }
function make_profile_url($user_name) { return make_ext_url("users", "profile", $user_name); }
function avatar() { if(!isset($_SESSION['active_user'])) redirect_to(make_url("users")); $usr = instance_model('users'); $user = $usr->get_user_by_id($_SESSION['active_user']['id']); if($user == array()) throw new no_such_user_exception(); if(!isset($_POST['Submit'])) { // Display main $view = instance_view('settings_avatar'); $view = $view->parse_to_variable(array( 'user' => $user)); } else { // Validate file type $type = array_pop(preg_split('/\./', $_FILES['file']['name'])); $valid_extensions = array('png', 'jpg', 'jpeg', 'JPG', 'JPEG'); for($found_type = 0; $found_type < count($valid_extensions); $found_type ++) if($type == $valid_extensions[$found_type]) { $found_type = -1; break; } if($found_type != -1) { new_flash('Invalid file type', 1); redirect_to(make_url('settings', 'avatar')); } $tmpname = 'media/' . sha1(time()) . '.' . $type; if (@move_uploaded_file($_FILES['file']['tmp_name'], $tmpname)) { // Load the image if($type == 'png') $img = @imagecreatefrompng($tmpname); else $img = @imagecreatefromjpeg($tmpname); if($img == false) { new_flash('Problem with image', 1); redirect_to(make_url('settings', 'avatar')); } // Resize $oldsize = getimagesize($tmpname); $img_n = imagecreatetruecolor(100, 100); imagecopyresampled($img_n, $img, 0, 0, 0, 0, 100, 100, $oldsize[0], $oldsize[1]); $avatar = 'media/' . $_SESSION['active_user']['name'] . '.jpg'; $result = imagejpeg($img_n, $avatar , 90); unlink($tmpname); if($result == false) { new_flash('Problem with image', 1); redirect_to(make_url('settings', 'avatar')); } print make_ext_url($avatar); $usr->update_avatar($user[0]['ID'], make_ext_url($avatar)); // Delete the old avatar as long as it is not the default $old_avatar = basename($user[0]['Avatar']); if(preg_match('/.+default_avatar\.jpg/', $old_avatar)) unlink('media/' . $old_avatar); redirect_to(make_url('settings', 'avatar')); } else { new_flash("File failed to upload"); redirect_to(make_url('settings', 'avatar')); } } // Display sidebar $sb_view = instance_view("settings_sidebar"); $sb_view = $sb_view->parse_to_variable(array( 'uid' => $_SESSION['active_user']['id'], 'uname' => $_SESSION['active_user']['name'])); $this->set_template_paramiters( array('main_content' => $view, 'sidebar' => $sb_view)); }
function follow() { try { $this->outer_template = null; $rmt = instance_model("remotes"); if(!isset($this->params[2])) die("no user specified"); // get the user from the database $usr = instance_model("users"); $user = $usr->get_user_by_name($this->params[2]); if($user == array()) throw new invalid_username_exception(); $msg = instance_model("messages"); $messages = $msg -> get_by_user_id($user[0]['ID']); // Output @Header('Content-type: text/xml'); echo $rmt->make_messages_xml( $user[0]['User_name'], $user[0]['Pub_key'], $user[0]['Priv_key'], $user[0]['Bio'], $user[0]['Avatar'], make_profile_url($user[0]['User_name']), $messages, make_ext_url('messages', 'ping'), make_ext_url('relations', 'ping') ); } catch(invalid_username_exception $e) { print "Invalid username"; } catch(exception $e) { print "Server error"; } }
function new_user($user, $email, $password) { validate_username($user); validate_email($email); validate_password($password); $salt = sha1(time()); $hashed_pass = sha1($salt . $password); $avatar = make_ext_url('media/default_avatar.jpg'); // Generate a new RSA key pair $res = openssl_pkey_new(); openssl_pkey_export($res, $priv_key); $pub_key = openssl_pkey_get_details($res); $pub_key = $pub_key['key']; $query = "INSERT INTO `users` (`User_name`, `E-mail`, `Password`, `Salt`, `Priv_key`, `Pub_key`, `Avatar`) VALUES ('@v','@v','@v','@v','@v','@v', '@v')"; $this->query($query, $user, $email, $hashed_pass, $salt, base64_encode($priv_key), base64_encode($pub_key), $avatar); }