forked from hantsy/angularjs-cakephp-sample
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPostsController.php
More file actions
104 lines (92 loc) · 2.61 KB
/
Copy pathPostsController.php
File metadata and controls
104 lines (92 loc) · 2.61 KB
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
<?php
App::uses('AppController', 'Controller');
/**
* Posts Controller
*
* @property Post $Post
* @property RequestHandlerComponent $RequestHandler
*/
class PostsController extends AppController {
public $components = array('RequestHandler');
public function isAuthorized($user) {
// All registered users can add posts
if ($this->action === 'add') {
return true;
}
// The owner of a post can edit and delete it
if (in_array($this->action, array('edit', 'delete'))) {
$postId = $this->request->params['pass'][0];
if ($this->Post->isOwnedBy($postId, $user['id'])) {
return true;
}
}
return parent::isAuthorized($user);
}
public function index() {
$posts = $this->Post->find('all');
$this->set(array(
'posts' => $posts,
'_serialize' => array('posts')
));
}
public function view($id) {
$post = $this->Post->findById($id);
$this->set(array(
'post' => $post,
'_serialize' => array('post')
));
}
public function add() {
$this->request->data['Post']['user_id'] = $this->Auth->user('id'); //
if ($this->Post->save($this->request->data)) {
$message = array(
'text' => __('Saved'),
'type' => 'success'
);
} else {
$message = array(
'text' => __('Error'),
'type' => 'error'
);
}
$this->set(array(
'message' => $message,
'_serialize' => array('message')
));
}
public function edit($id) {
$this->Post->id = $id;
if ($this->Post->save($this->request->data)) {
$message = array(
'text' => __('Saved'),
'type' => 'success'
);
} else {
$message = array(
'text' => __('Error'),
'type' => 'error'
);
}
$this->set(array(
'message' => $message,
'_serialize' => array('message')
));
}
public function delete($id) {
if ($this->Post->delete($id)) {
$message = array(
'text' => __('Deleted'),
'type' => 'success'
);
} else {
$message = array(
'text' => __('Error'),
'type' => 'error'
);
}
$this->set(array(
'message' => $message,
'_serialize' => array('message')
));
}
}