I'm having problems with non-root users editing pages. I created a new backend user for our web editor and gave her read, write and administrator privileges for one site. If I login using her account and attempt to do backend editing then I see the login screen on the right hand side where I would expect to see the details of the page.
If I try to do front end editing then I see the header (from the design), followed by this message
PHP Notice
File: [SYSTEM_ROOT]/data/private/assets/design/23/design_file.php Line: 5
Message: Constant XPmØS1·_EDITING already defined
Backtrace: Show
then the entire login screen (i.e the header appears again). It all works fine if I login as root.
The backtrace is
0 => array (
"function" => "sq_error_handler",
"args" => array (
0 => 8,
1 => "Constant ØS1·ØS1·_EDITING already defined",
2 => "[SYSTEM_ROOT]/data/private/assets/design/23/design_file.php",
3 => 5,
4 => array (
[Max Depth Reached]
)
)
),
1 => array (
"file" => "[SYSTEM_ROOT]/data/private/assets/design/23/design_file.php",
"line" => 5,
"function" => "define",
"args" => array (
0 => "SQ_LIMBO_EDITING",
1 => 1
)
),
2 => array (
"file" => "[SYSTEM_ROOT]/core/assets/designs/design/design.inc",
"line" => 652,
"args" => array (
0 => "[SYSTEM_ROOT]/data/private/assets/design/23/design_file.php"
),
"function" => "require_once"
),
3 => array (
"file" => "[SYSTEM_ROOT]/core/include/mysource.inc",
"line" => 344,
"function" => "paint",
"class" => "design",
"type" => "->",
"args" => array (
0 => new page_standard Object (
[Max Depth Reached]
)
)
),
4 => array (
"file" => "[SYSTEM_ROOT]/core/include/asset_edit_interface.inc",
"line" => 197,
"function" => "paintlogin",
"class" => "mysource",
"type" => "->",
"args" => array (
0 => "Login",
1 => "You do not have permission to access the <i>contents</i> screen of \"Page Contents\""
)
),
5 => array (
"file" => "[SYSTEM_ROOT]/core/include/asset.inc",
"line" => 2803,
"function" => "paint",
"class" => "asset_edit_interface",
"type" => "->",
"args" => array (
0 => new bodycopy Object (
[Max Depth Reached]
),
1 => new limbo_outputter Object (
[Max Depth Reached]
),
2 =>
)
),
6 => array (
"file" => "[SYSTEM_ROOT]/core/assets/bodycopy/bodycopy/bodycopy.inc",
"line" => 222,
"function" => "paintbackend",
"class" => "asset",
"type" => "::",
"args" => array (
0 => new limbo_outputter Object (
[Max Depth Reached]
)
)
),
7 => array (
"file" => "[SYSTEM_ROOT]/core/include/asset.inc",
"line" => 2783,
"function" => "paintbackend",
"class" => "bodycopy",
"type" => "->",
"args" => array (
0 => new limbo_outputter Object (
[Max Depth Reached]
)
)
),
8 => array (
"file" => "[SYSTEM_ROOT]/core/assets/page_templates/page_standard/page_standard.inc",
"line" => 233,
"function" => "printlimbo",
"class" => "bodycopy",
"type" => "->",
"args" => array (
[Empty]
)
),
9 => array (
"file" => "[SYSTEM_ROOT]/data/private/assets/design/22/design_file.php",
"line" => 190,
"function" => "printlimbo",
"class" => "page_standard",
"type" => "->",
"args" => array (
[Empty]
)
),
10 => array (
"file" => "[SYSTEM_ROOT]/core/assets/designs/design/design.inc",
"line" => 652,
"args" => array (
0 => "[SYSTEM_ROOT]/data/private/assets/design/22/design_file.php"
),
"function" => "require_once"
),
11 => array (
"file" => "[SYSTEM_ROOT]/core/include/asset.inc",
"line" => 2749,
"function" => "paint",
"class" => "design",
"type" => "->",
"args" => array (
0 => new page_standard Object (
[Max Depth Reached]
)
)
),
12 => array (
"file" => "[SYSTEM_ROOT]/core/include/asset_manager_edit_fns.inc",
"line" => 198,
"function" => "printfrontend",
"class" => "page_standard",
"type" => "->",
"args" => array (
[Empty]
)
),
13 => array (
"file" => "[SYSTEM_ROOT]/core/include/asset_manager.inc",
"line" => 4284,
"function" => "paintbackend",
"class" => "asset_manager_edit_fns",
"type" => "->",
"args" => array (
[Empty]
)
),
14 => array (
"file" => "[SYSTEM_ROOT]/core/include/backend.inc",
"line" => 762,
"function" => "paintbackend",
"class" => "asset_manager",
"type" => "->",
"args" => array (
0 => new backend Object (
[Max Depth Reached]
)
)
),
15 => array (
"file" => "[SYSTEM_ROOT]/core/include/backend.inc",
"line" => 140,
"function" => "_printmain",
"class" => "backend",
"type" => "->",
"args" => array (
[Empty]
)
),
16 => array (
"file" => "[SYSTEM_ROOT]/core/include/mysource.inc",
"line" => 243,
"function" => "paint",
"class" => "backend",
"type" => "->",
"args" => array (
[Empty]
)
),
17 => array (
"file" => "[SYSTEM_ROOT]/core/web/index.php",
"line" => 37,
"function" => "start",
"class" => "mysource",
"type" => "->",
"args" => array (
[Empty]
)
)
Any suggestions?
Normal users must be put into groups, and the group needs to be given access to asset screens for editing. Essentially, the system is locked down until you open it up for all non-admins. This gives two levels of access. Users have permissions to see and edit assets, but you are able to restrict which screens they can actually get to. So a user might be able to edit the contents of a page but not be able to get to any metadata screens.
The easiest way to give access for normal users is:
- Create a group somewhere
- Put the user in the group
- Go to the security restrictions screen of the group and lock it
- Tick the box that grants unrestricted access and commit
Now users in that group have access to all screens of all asset types. Permissions then take over from that point on.