Skip to content

Commit 9a4566c

Browse files
committed
Add permission to a few standard roles
1 parent 70dd09f commit 9a4566c

1 file changed

Lines changed: 67 additions & 0 deletions

File tree

migrations/v204.php

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
<?php
2+
/**
3+
*
4+
* IP anonymised extension for the phpBB Forum Software package.
5+
*
6+
* @copyright (c) 2020 Crizzo <https://www.crizzo.de>
7+
* @license GNU General Public License, version 2 (GPL-2.0)
8+
*
9+
*/
10+
11+
namespace phpbbde\pastebin\migrations;
12+
13+
class v204 extends \phpbb\db\migration\migration
14+
{
15+
static public function depends_on()
16+
{
17+
return array(
18+
'\phpbbde\pastebin\migrations\v_0_0_1',
19+
);
20+
}
21+
22+
public function update_data()
23+
{
24+
// Check if user role exists and assign permission to user standard role
25+
if ($this->role_exists('ROLE_USER_STANDARD'))
26+
{
27+
$data[] = array('permission.permission_set', array('ROLE_USER_STANDARD', 'u_pastebin_post', 'role', true));
28+
$data[] = array('permission.permission_set', array('ROLE_USER_STANDARD', 'u_pastebin_edit', 'role', true));
29+
$data[] = array('permission.permission_set', array('ROLE_USER_STANDARD', 'u_pastebin_delete', 'role', true));
30+
$data[] = array('permission.permission_set', array('ROLE_USER_STANDARD', 'u_pastebin_post_novc', 'role', true));
31+
$data[] = array('permission.permission_set', array('ROLE_USER_STANDARD', 'u_pastebin_view', 'role', true));
32+
}
33+
// Check if moderator role exists and assign permission to moderator standard role
34+
if ($this->role_exists('ROLE_MOD_STANDARD'))
35+
{
36+
$data[] = array('permission.permission_set', array('ROLE_MOD_STANDARD', 'm_pastebin_delete', 'role', true));
37+
$data[] = array('permission.permission_set', array('ROLE_MOD_STANDARD', 'm_pastebin_edit', 'role', true));
38+
$data[] = array('permission.permission_set', array('ROLE_MOD_STANDARD', 'm_pastebin_post_notlim', 'role', true));
39+
}
40+
// Check if moderator role exists and assign permission to moderator full role
41+
if ($this->role_exists('ROLE_MOD_FULL'))
42+
{
43+
$data[] = array('permission.permission_set', array('ROLE_MOD_FULL', 'm_pastebin_delete', 'role', true));
44+
$data[] = array('permission.permission_set', array('ROLE_MOD_FULL', 'm_pastebin_edit', 'role', true));
45+
$data[] = array('permission.permission_set', array('ROLE_MOD_FULL', 'm_pastebin_post_notlim', 'role', true));
46+
}
47+
48+
return $data;
49+
}
50+
/**
51+
* Checks whether the given role does exist or not.
52+
*
53+
* @param String $role the name of the role
54+
* @return true if the role exists, false otherwise
55+
* Source: https://github.com/paul999/mention/
56+
*/
57+
private function role_exists($role)
58+
{
59+
$sql = 'SELECT role_id
60+
FROM ' . ACL_ROLES_TABLE . "
61+
WHERE role_name = '" . $this->db->sql_escape($role) . "'";
62+
$result = $this->db->sql_query_limit($sql, 1);
63+
$role_id = $this->db->sql_fetchfield('role_id');
64+
$this->db->sql_freeresult($result);
65+
return $role_id;
66+
}
67+
}

0 commit comments

Comments
 (0)