forked from ethymos/delibera
-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathdelibera_permission.php
59 lines (53 loc) · 1.48 KB
/
delibera_permission.php
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
<?php
/**
* Verifica se o usuário atual pode participar das discussão
* de uma pauta votando ou discutindo.
*
* Por padrão retorna true apenas de o usuário tiver a capability 'votar',
* mas se a opção "Todos os usuários da rede podem participar" estiver habilitada
* retorna true para todos os usuários logados.
*
* Quando estiver na single da pauta, retorna false sempre que ela
* estiver com o prazo encerrado.
*
* @param string $permissao
* @return bool
* @package Pauta
*/
function delibera_current_user_can_participate($permissao = 'votar') {
global $post;
$options = delibera_get_config();
if (is_singular('pauta') && \Delibera\Flow::getDeadlineDays($post->ID) == -1) {
return false;
} else if (is_multisite() && $options['todos_usuarios_logados_podem_participar'] == 'S') {
return is_user_logged_in();
} else {
return current_user_can($permissao);
}
}
/**
* Verifica se pauta está aberta para comentários
*
* @param string $postID
*
* @package Pauta
*/
function delibera_can_comment($postID = '')
{
if(is_admin()) return true;
if(is_null($postID))
{
$postID = get_the_ID();
}
$situacoes_validas = array('validacao' => true, 'discussao' => true, 'emvotacao' => true, 'elegerelator' => true);
$situacao = delibera_get_situacao($postID);
if(array_key_exists($situacao->slug, $situacoes_validas))
{
return delibera_current_user_can_participate();
}
elseif($situacao->slug == 'relatoria')
{
return current_user_can('relatoria');
}
return false;
}