public static function do_setting_action() { self::method('post'); self::role('user'); self::csrf('user'); try { $checker = new lazy_checker(p()); $checker->check('pass', array('change_to' => 'string', 'pass_if_be' => '', 'char_size' => array(6, -1, ''))); $checker->check('new_pass', array('change_to' => 'string', 'pass_if_be' => '', 'char_size' => array(6, -1, ''))); if (p_has('avatar')) { $checker->check('avatar', array('change_to' => 'array')); } $pass = $checker->pass; if ($pass !== '') { $user_id = visitor::get_role_id('user'); $user = user_model::get_by_id($user_id); if (!$user->is_valid_pass($checker->pass)) { $checker->failed('pass', '原密码不正确。'); } else { if ($checker->new_pass !== p_str('re_pass')) { $checker->failed('new_pass', '两次输入的密码不相同。'); } else { $user->change_pass_to($checker->new_pass); $user->save(); } } } self::json_result(true, '', 0, url('user/setting')); } catch (check_failed $e) { self::json_result(false, $e->get_reasons()); } }
public static function run(array $context) { $logined = visitor::has_role('user'); self::set('logined', $logined); if ($logined) { self::set('user', user_model::get_by_id(visitor::get_role_id('user'))); } self::render(); }
public static function admin_action() { // 拦截 self::role('member'); // 呈现 $member = member_model::get_by_id(visitor::get_role_id('member')); self::set('name', $member->name); self::show_page('', 'two'); }
public static function do_new_action() { self::method('post'); self::role('user'); self::csrf('user'); $board_id = g_int('board_id', 1); $board = board_model::get_by_id($board_id); try { $checker = new lazy_checker(p()); $checker->check('title', array('change_to' => 'string', 'char_size' => array(3, topic_model::title_len, '标题长度为%d到%d个字符'))); $checker->check('content', array('change_to' => 'string', 'char_size' => array(6, topic_model::content_len, '内容长度为%d到%d个字符'))); $user_id = visitor::get_role_id('user'); $topic = array('board_id' => $board_id, 'user_id' => $user_id, 'pub_time' => clock::get_stamp(), 'title' => $checker->title, 'content' => $checker->content); $topic_id = topic_service::new_topic($topic); self::json_result(true, '', 0, url('topic/show?id=' . $topic_id)); } catch (check_failed $e) { self::json_result(false, $e->get_reasons()); } }
public static function new_action() { self::method('post'); self::role('user', 'forward_to', 'site/login'); self::csrf('user'); $topic_id = g_int('topic_id'); $topic = topic_model::get_by_id($topic_id); self::forward_404_if($topic === null, '主题不存在。'); try { $checker = new lazy_checker(p()); $checker->check('content', array('change_to' => 'string', 'char_size' => array(6, reply_model::content_len, '内容长度为%d到%d个字符'))); $pub_time = clock::get_stamp(); $user_id = visitor::get_role_id('user'); $reply = array('board_id' => $topic->board_id, 'topic_id' => $topic_id, 'user_id' => $user_id, 'pub_time' => $pub_time, 'content' => $checker->content); reply_service::new_reply($reply); self::json_result(true, '', 0, url('topic/show?id=' . $topic_id)); } catch (check_failed $e) { self::json_result(false, $e->get_reasons()); } }
public static function do_new_action() { // 拦截 self::method('post'); self::role('member'); self::csrf('member'); try { // 校验 $checker = new lazy_checker(p()); $checker->check_model_rules('post'); // 执行 $props = $checker->get_all(); $tags = $props['tags']; unset($props['tags']); $props['member_id'] = visitor::get_role_id('member'); $props['pub_time'] = clock::get_stamp(); $post = new post_model(); $post->set_props($props); publish_service::publish($post, $tags); // 成功 self::json_result(true, '文章发表成功', 0, url('post/show?id=' . $post->id)); } catch (check_failed $e) { // 失败 self::json_result(false, $e->get_reasons()); } }