Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
drupal.org
better_formats
Commits
24623313
Commit
24623313
authored
Feb 08, 2009
by
dragonwize
Browse files
Fixed #363829 by dragonwize: Validation error for roles with admin filter perm
parent
548e29e9
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
29 additions
and
9 deletions
+29
-9
better_formats.module
better_formats.module
+23
-9
better_formats_defaults.admin.inc
better_formats_defaults.admin.inc
+6
-0
No files found.
better_formats.module
View file @
24623313
...
...
@@ -640,15 +640,7 @@ function better_formats_get_formats_per_role($default_title = 'Site') {
$roles
=
user_roles
();
// get roles that have administer filters permission
$sql
=
"SELECT rid
FROM
{
permission
}
WHERE perm LIKE '%administer filters%'
ORDER BY rid"
;
$result
=
db_query
(
$sql
);
$admin_roles
=
array
();
while
(
$row
=
db_fetch_object
(
$result
))
{
$admin_roles
[]
=
$row
->
rid
;
}
$admin_roles
=
better_formats_get_filter_admin_roles
();
$site_default_format
=
filter_resolve_format
(
FILTER_FORMAT_DEFAULT
);
...
...
@@ -725,4 +717,26 @@ function better_formats_get_role_default_fields($mode, $node_type = '') {
}
return
$form
;
}
/**
* Gets a list of roles that have the admin filter perm
*
* @return array
* An numeric indexed key of role IDs
*/
function
better_formats_get_filter_admin_roles
()
{
static
$roles
;
if
(
!
$roles
)
{
$sql
=
"SELECT rid
FROM
{
permission
}
WHERE perm LIKE '%administer filters%'
ORDER BY rid"
;
$result
=
db_query
(
$sql
);
$roles
=
array
();
while
(
$row
=
db_fetch_object
(
$result
))
{
$roles
[]
=
$row
->
rid
;
}
}
return
$roles
;
}
\ No newline at end of file
better_formats_defaults.admin.inc
View file @
24623313
...
...
@@ -44,10 +44,16 @@ function better_formats_defaults_admin_form_validate($form, &$form_state) {
foreach
(
$formats
as
$fid
=>
$format
)
{
$roles
[
$fid
]
=
explode
(
','
,
$format
->
roles
);
}
// get roles that have administer filters permission
$admin_roles
=
better_formats_get_filter_admin_roles
();
foreach
(
$form_state
[
'values'
]
as
$key
=>
$values
)
{
if
(
strpos
(
$key
,
'node-'
)
===
0
||
strpos
(
$key
,
'comment-'
)
===
0
)
{
list
(
$type
,
$rid
)
=
explode
(
'-'
,
$key
);
if
(
in_array
(
$rid
,
$admin_roles
))
{
// role has the admin filters perm so it can use all formats
continue
;
}
$fid
=
$values
[
'format'
];
if
(
$fid
!=
0
&&
!
in_array
(
$rid
,
$roles
[
$fid
]))
{
form_set_error
(
$key
,
t
(
'Role does not have access to selected format.'
));
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment