summaryrefslogtreecommitdiff
path: root/modules/poll
diff options
context:
space:
mode:
authorGábor Hojtsy <gabor@hojtsy.hu>2007-11-05 16:28:25 +0000
committerGábor Hojtsy <gabor@hojtsy.hu>2007-11-05 16:28:25 +0000
commit73d88aa9292890ab95e81e2130ccb7da74a87235 (patch)
treeda60917a9041f5afb55ebe1759a549e296764a1e /modules/poll
parent2d8529a032193b5a3b8bf73a1b4d953a1b15bee5 (diff)
downloadbrdo-73d88aa9292890ab95e81e2130ccb7da74a87235.tar.gz
brdo-73d88aa9292890ab95e81e2130ccb7da74a87235.tar.bz2
#189009 by AjK: edit own poll permission was missing from poll module (although available for other content types)
Diffstat (limited to 'modules/poll')
-rw-r--r--modules/poll/poll.module15
1 files changed, 11 insertions, 4 deletions
diff --git a/modules/poll/poll.module b/modules/poll/poll.module
index a346c7996..63d95fbed 100644
--- a/modules/poll/poll.module
+++ b/modules/poll/poll.module
@@ -54,15 +54,20 @@ function poll_theme() {
* Implementation of hook_perm().
*/
function poll_perm() {
- return array('create polls', 'vote on polls', 'cancel own vote', 'inspect all votes');
+ return array('create polls', 'edit polls', 'edit own poll', 'vote on polls', 'cancel own vote', 'inspect all votes');
}
/**
* Implementation of hook_access().
*/
function poll_access($op, $node, $account) {
- if ($op == 'create') {
- return user_access('create polls', $account);
+ global $user;
+
+ switch ($op) {
+ case 'create':
+ return user_access('create polls', $account);
+ case 'update':
+ return user_access('edit polls') || (user_access('edit own poll') && ($node->uid == $user->uid));
}
}
@@ -177,7 +182,9 @@ function poll_node_info() {
* Implementation of hook_form().
*/
function poll_form(&$node, $form_state) {
- $admin = user_access('administer nodes');
+ global $user;
+
+ $admin = user_access('administer nodes') || user_access('edit polls') || (user_access('edit own polls') && $user->uid == $node->nid);
$type = node_get_types('type', $node);
$form = array(