Bin will be removed on June 1, 2014 in favor of http://gist.github.com. Please save all your pastes before then. So long, and thanks for all the fish!×
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/**
     *
     * @return
     * @param object $user[required]
     */
    function index($user=null) {
        //Function spec:
        //The user should not be able to view the questions if they are not following the person on Twitter.
       
        /*if(is_null($this->cookie)){
            $this->Session->setFlash(__('Please login.', true));
            $this->redirect('/');
            exit();
        }*/
       
        if($this->RequestHandler->isRss()){
            $this->Question->recursive =1;
            //debug($this->params['url']);
            $channel = array (
                            'title' => 'Twitter Pigeon',
                            'link' =>'http://www.twitterpigeon.com/',
                            'description' => 'Enter a description here.'
                            );
            $this->set('channel', $channel);
 
            $dbUser = $this->Question->User->findByUsername($this->params['url']['user']);
            $conditions = array(
                                'Question.user_id =' => $dbUser['User']['id'],
                                'Question.private =' => '0'
                                );
            $questions = $this->Question->find('all',array(
                                                            'recusive'=>1,
                                                            'conditions'=>$conditions,
                                                            'order' => 'Question.created DESC',
                                                            'limit' => '0,15'
                                                            ));
            $this->set(compact('questions'));
           
           
        }else{
           
            if(empty($user)){
                $this->Session->setFlash(__('Please enter a valid username.', true));
                $this->redirect($this->referer());
            }
       
            //USER CHECK
            $this->Question->recursive =1;
            $dbUser = $this->Question->User->findByUsername($user);
            if(empty($dbUser)) {
                //Redirect the user back to the question page
                $this->Session->setFlash(__('Please enter a valid username.', true));
                $this->redirect($this->referer());
            }
       
            $question_owner = false;
            if(!is_null($this->cookie)){
                //Check to see if this question is the question owner and allow them to edit the question
                if($dbUser['User']['username'] == $this->cookie['username'] && !is_null($this->cookie['username'])){
                    $question_owner = true;
                }else{
                    $question_owner = false;
                }
                $this->set('question_owner',$question_owner);
            }
           
            //Find all of the questions associated with this user. Sort them by private and public
            $conditions = array('Question.user_id LIKE' => $dbUser['User']['id']);
            $questions = $this->Question->find('all',array(
                                                            'recusive'=>1,
                                                            'conditions'=>$conditions
                                                            ));
           
            //debug($questions);
            $public_questions = array();
            $private_questions = array();
            $all_questions = array();
            for($q=0;$q<count($questions);$q++){
                if($questions[$q]['Question']['private']==0){
                    $public_questions[] = $questions[$q];
                }else{
                    $private_questions[] = $questions[$q];
                }
                $all_questions[] = $questions[$q];
            }
            //debug($private_questions);
            //debug($public_questions);
            if(!is_null($this->cookie)){
               
                if(!$question_owner){
                    $isFriend = $this->checkIfFriend($this->cookie['username'],$user); //Check to see if the question is actuall owned by the user or is a friends question.
                    if(!empty($isFriend)){
                        //Authorized to add a question
                        debug("You are a friend of this user.");
                        $questions = $this->paginate('Question',array(
                                                                    'Question.user_id LIKE' => $dbUser['User']['id']
                                                                    ));
                        $this->set(compact('questions'));
                    }else{
                        if(!empty($public_questions)){
                            $questions = $this->paginate('Question',array(
                                                                            'Question.user_id LIKE' => $dbUser['User']['id'],
                                                                            'Question.private LIKE' => '0'
                                                                            ));
                            $this->set(compact('questions'));
                        }else{
                            $this->Session->setFlash(__('No public questions found.', true));
                            $this->set('questions',null);
                            //Redirect the user back to the home page
                            $this->redirect($this->referer());
                        }
                    }
                }else{
                    debug("You are this user.");
                    $questions = $this->paginate('Question',array(
                                                                'Question.user_id LIKE' => $dbUser['User']['id']
                                                                ));
                    $this->set(compact('questions'));
                }
               
            }else{
                debug("You are not logged in.");
                //Show the public questions
                if(!empty($public_questions)){
                    $questions = $this->paginate('Question',array(
                                                                'Question.user_id LIKE' => $dbUser['User']['id'],
                                                                'Question.private LIKE' => '0'
                                                                ));
                    $this->set(compact('questions'));
                }else{
                    $this->Session->setFlash(__('No public questions found.', true));
                    $this->set('questions',null);
                    //Redirect the user back to the home page
                    $this->redirect($this->referer());
                }
            }
           
            //Set user data
            $this->set('user',$dbUser);
        }
    }