The error is in the workflow.module (line 689).
if (!workflow_transition_allowed($tid, array_merge(array_keys($user->roles), array('author')))) {

nedds to be changhed in
if (!workflow_transition_allowed($sid, array_merge(array_keys($user->roles), array('author')))) {

$tid becomes $sid.
If not, only admin may change the state .

Comments

Bastlynn’s picture

Status: Active » Needs work

Given how that function is used, I don't think switching from tid to sid is going to solve anything. tid is the transition id, sid is the state id and that function is specifically checking if the transition is allowed. We check for allowed transitions in that function not allowed states. (Workflow_access is the module to check access for view / edit/ delete against state.)

I'll double check my set up with anon-admin user to be sure we're allowing user transition properly though, in case there's another cause behind what you're seeing.

Bastlynn’s picture

Status: Needs work » Closed (fixed)

I think I found what you're seeing, it actually traced higher up the chair to line 689, where we needed to pass, not $tid, but $transition->tid. The change is in on 7.x - thanks!

vitoabrusci’s picture

Perfect, I've tested and now it's ok.
;-)