function profileEdit() { // Authorize user $id = $_GET['id']; if ($this->_user['is_authorized']) { if (!($this->_user['id'] == $id)) { $this->set('authorized', false); die('You are not allowed to edit this profile!'); } else { $this->set('authorized', true); } } else { $this->set('authorized', false); die('You are not allowed to edit this profile!'); } // get all necessary user data $user = new User(); $user->createFromID($id); $email = $user->getEmail(); $language = $user->getDefaultLanguage(); $this->set('default_language', $language); // notification_interval is rewritten if any POST data is present $notification_interval = $user->getNotificationInterval(); $default_theme = $user->getDefaultTheme(); //if any POST data in - update profile $style = new Style(); $styles_list = $style->getAll(); $this->set('styles', $styles_list); $this->set('notification_interval', $notification_interval); $this->set('default_theme', $default_theme); $this->set('profile', $user); $this->set('email', $email); $this->set('page_title', "Edit User - " . $user->username); }
function newDeck() { // need a better access control here if (!$this->_user['is_authorized']) { $this->set('authorized', false); //die ( 'Please login in to create a new deck!' ); } else { $this->set('authorized', true); } if (isset($_POST['submit'])) { $data = $_POST['deck']; $deck = new Deck(); $deck->title = $data['title']; $deck->slug_title = $deck->sluggify($deck->title); $user = new User(); $user->createFromID($this->getCurrentUserID()); $deck->user = $user; $deck->abstract = $data['abstract']; $deck->default_theme = $data['theme']; $deck->visibility = $data['visibility']; $deck->language['id'] = $data['language_id']; $deck->language['name'] = $data['language_name']; $deck->create(); $slide_no = $data['slideNo']; //add slides $content = array(); for ($i = 1; $i < $slide_no; $i++) { $slide = new Slide(); $slide->user = $user; $slide->content = "<h2>new slide</h2>"; $slide->language['id'] = $data['language_id']; $slide->language['name'] = $data['language_name']; $slide->translation_status = 'original'; $slide->create(); $content[] = $slide; } $deck->addContent($content); $tag = new Tag(); $tag->item_type = "deck"; $tag->item_id = $deck->id; foreach (explode(',', $data['tags']) as $item) { $tag->tag = $item; $tag->save(); } header('Location:deck/' . $deck->id . '_' . $deck->slug_title); } else { $style = new Style(); $styles_list = $style->getAll(); $this->set('styles', $styles_list); $user_id = $this->getCurrentUserID(); $user = new User(); $user->id = $user_id; $default_language = $user->getDefaultLanguage(); if (!$default_language['id']) { $default_language['id'] = 'en'; $default_language['name'] = 'English'; } $this->set('default_language', $default_language); } $this->set('page_title', 'SlideWiki - Create a new deck'); }