ロール関連の権限のないユーザでユーザ作成するとエラー
Posted: 2013年7月26日(金) 16:59
いつもお世話になっております。
ロール関連の権限が全てないユーザで、ユーザ作成を行うとSQLエラーが発生します。
実際使っているのは最新版では無いのですが、最新1.0.10-r2のソースでも変わってなさそうだったので、一応報告します。
原因は、
/manager/actions/mutate_user.dynamic.php
line:347
elseif(!$modx->hasPermission('edit_role')
&& !$modx->hasPermission('save_role')
&& !$modx->hasPermission('delete_role')
&& !$modx->hasPermission('new_role')
)
{
$where = 'id=' . $userdata['role'];
}
これだと思います。
新規作成の場合、$userdata['role']がないので、where句が"id="になってしまいます。
とりあえず、ロール権限がないユーザでも既にあるロールは選べて良いのではないかと
$where = 'edit_role=0 AND save_role=0 AND delete_role=0 AND new_role=0';
に変更して事なきを得ました。
ご参考まで。
ロール関連の権限が全てないユーザで、ユーザ作成を行うとSQLエラーが発生します。
実際使っているのは最新版では無いのですが、最新1.0.10-r2のソースでも変わってなさそうだったので、一応報告します。
原因は、
/manager/actions/mutate_user.dynamic.php
line:347
elseif(!$modx->hasPermission('edit_role')
&& !$modx->hasPermission('save_role')
&& !$modx->hasPermission('delete_role')
&& !$modx->hasPermission('new_role')
)
{
$where = 'id=' . $userdata['role'];
}
これだと思います。
新規作成の場合、$userdata['role']がないので、where句が"id="になってしまいます。
とりあえず、ロール権限がないユーザでも既にあるロールは選べて良いのではないかと
$where = 'edit_role=0 AND save_role=0 AND delete_role=0 AND new_role=0';
に変更して事なきを得ました。
ご参考まで。