【解決】ページ権限設定&ワークフロー設定がうまくいきません

2018年12月22日 at 10:16

はじめまして。ニッチもサッチも行かなくなってしまったため
皆様のお知恵をいただきたく投稿いたします。

【やりたいこと】
「編集者」がページ内を編集、または新規ページ作成をした際に必ず
「管理者」の承認を以て公開されるワークフロー(上級権限モード済み)

【現状】
添付1 ワークフローに送信
 「編集者」が新規ページを作成した際、“ワークフローに送信”ボタンは正常に表出
添付2 該当ページへ「管理者」がアクセスすると承認を促すメッセージ表出(正常)
添付3 承認を押下すると
    予期せぬエラーが発生しました。
      Call to a member function getGroupMembers() on boolean となる
添付4 エラーとなったものの、フルサイトマップにはページが存在しており、
    これを削除しようとすると・・・
添付5  先ほどの Call to a member function getGroupMembers() on boolean が
    表示され削除できず。
添付6 ページタイプの権限設定状態
添付7 ページ作成した「編集者」でログインをすると"下書き”状態となっていて、
    こちらからも削除をすると添付5と同じエラーで削除できず

添付8 そもそものつまずき
    「編集者」が既存ページの更新を保存する際、
    "ワークフローへ送信”ボタンが表出しなかった
    (デフォルト"ページ”をコピーして権限設定前に作成したページ)
添付9 当該"既存ページ”の権限設定状態
添付10 ワークフロー権限状態


【質問】
  ・ページ作成あとの権限設定がこのような状況を引き起こしているのでしょうか
  ・「編集者」がページ編集を保存する際、"ワークフローへ送信”ボタンが出ないのは
   何か設定が間違っているからでしょうか
  ・エラーで作成されてしまったページを削除したいのですが、すべて作り直して
   しまった方が早いのでしょうか?

<構築時参考資料>
 世界一わかりやすいConcrete5 P204~


<環境情報>
 インストール環境
 Windows10 ローカルPC (64bit)
 Windows版 MAMP
 ブラウザ GoogleChrome or FireFox


# concrete5 Version
Core Version - 8.4.3
Version Installed - 8.4.3
Database Version - 20180716000000

# concrete5 Packages
Easy Weather (1.0.0), Global Version List (1.0), PDF Viewer (1.0.1)

# concrete5 Overrides
None

# concrete5 Cache Settings
Block Cache - Off
Overrides Cache - On
Full Page Caching - Off
Full Page Cache Lifetime - Every 6 hours (default setting).

# Server Software
Apache/2.2.31 (Win32) DAV/2 mod_ssl/2.2.31 OpenSSL/1.0.2h mod_fcgid/2.3.9 mod_wsgi/3.4 Python/2.7.6 PHP/7.2.1 mod_perl/2.0.8 Perl/v5.16.3

# Server API
apache2handler

# PHP Version
7.2.1

# PHP Extensions
apache2handler, bcmath, bz2, calendar, com_dotnet, Core, ctype, curl, date, dom, exif, fileinfo, filter, gd, gettext, hash, iconv, imagick, json, libxml, mbstring, mysqli, mysqlnd, odbc, openssl, pcre, PDO, pdo_mysql, pdo_sqlite, Phar, Reflection, session, SimpleXML, soap, sockets, SPL, sqlite3, standard, tokenizer, wddx, xml, xmlreader, xmlwriter, zip, zlib

# PHP Settings
max_execution_time - 30
log_errors_max_len - 1024
max_file_uploads - 20
max_input_nesting_level - 64
max_input_time - 60
max_input_vars - 1000
memory_limit - 128M
post_max_size - 8M
upload_max_filesize - 2M
mysqli.max_links - Unlimited
mysqli.max_persistent - Unlimited
odbc.max_links - Unlimited
odbc.max_persistent - Unlimited
pcre.backtrack_limit - 1000000
pcre.recursion_limit - 100000
session.cache_limiter - no value
session.gc_maxlifetime - 7200
soap.wsdl_cache_limit - 5


以上、よろしくおねがいいたします。

※一部画像修正のため再投稿しました。失礼いたしました。

タグ:

Re: 【質問】ページ権限設定&ワークフロー設定がうまくいきません

2018年12月22日 at 12:02
その後の検証で、当該ページ以外でもadminでページ編集をし、"ページを公開する”にしても
同じエラーが出てしまいます。

デバッグモードでエラー発生記述箇所をキャプチャしましたので添付いたします(添付11)


また、エラーメッセージとともに処理プロセスのログと思われる詳細が表示されました。


**********************

Call to a member function getGroupMembers() on boolean

詳細

C:\MAMP\htdocs\portal\concrete\src\Permission\Access\Entity\GroupEntity.php(21): Error->null
C:\MAMP\htdocs\portal\concrete\src\Notification\Notifier\StandardNotifier.php(46): Concrete\Core\Permission\Access\Entity\GroupEntity->getAccessEntityUsers
C:\MAMP\htdocs\portal\concrete\src\Notification\Notifier\WorkflowProgressNotifier.php(18): Concrete\Core\Notification\Notifier\StandardNotifier->getUsersToNotify
C:\MAMP\htdocs\portal\concrete\src\Workflow\Progress\Progress.php(168): Concrete\Core\Notification\Notifier\WorkflowProgressNotifier->getUsersToNotify
C:\MAMP\htdocs\portal\concrete\src\Workflow\Progress\PageProgress.php(22): Concrete\Core\Workflow\Progress\Progress->create
C:\MAMP\htdocs\portal\concrete\src\Workflow\Request\PageRequest.php(42): Concrete\Core\Workflow\Progress\PageProgress->add
C:\MAMP\htdocs\portal\concrete\src\Workflow\Request\Request.php(125): Concrete\Core\Workflow\Request\PageRequest->addWorkflowProgress
C:\MAMP\htdocs\portal\concrete\src\Workflow\Request\PageRequest.php(55): Concrete\Core\Workflow\Request\Request->triggerRequest
C:\MAMP\htdocs\portal\concrete\controllers\dialog\page\delete.php(48): Concrete\Core\Workflow\Request\PageRequest->trigger
C:\MAMP\htdocs\portal\concrete\src\Controller\AbstractController.php(294): Concrete\Controller\Dialog\Page\Delete->submit
C:\MAMP\htdocs\portal\concrete\src\Controller\AbstractController.php(294): null->call_user_func_array
C:\MAMP\htdocs\portal\concrete\src\Routing\ControllerRouteCallback.php(27): Concrete\Core\Controller\AbstractController->runAction
C:\MAMP\htdocs\portal\concrete\src\Routing\Router.php(149): Concrete\Core\Routing\ControllerRouteCallback->execute
C:\MAMP\htdocs\portal\concrete\src\Http\DefaultDispatcher.php(121): Concrete\Core\Routing\Router->execute
C:\MAMP\htdocs\portal\concrete\src\Http\DefaultDispatcher.php(57): Concrete\Core\Http\DefaultDispatcher->handleDispatch
C:\MAMP\htdocs\portal\concrete\src\Http\Middleware\DispatcherDelegate.php(39): Concrete\Core\Http\DefaultDispatcher->dispatch
C:\MAMP\htdocs\portal\concrete\src\Http\Middleware\ThumbnailMiddleware.php(71): Concrete\Core\Http\Middleware\DispatcherDelegate->next
C:\MAMP\htdocs\portal\concrete\src\Http\Middleware\MiddlewareDelegate.php(38): Concrete\Core\Http\Middleware\ThumbnailMiddleware->process
C:\MAMP\htdocs\portal\concrete\src\Http\Middleware\FrameOptionsMiddleware.php(39): Concrete\Core\Http\Middleware\MiddlewareDelegate->next
C:\MAMP\htdocs\portal\concrete\src\Http\Middleware\MiddlewareDelegate.php(38): Concrete\Core\Http\Middleware\FrameOptionsMiddleware->process
C:\MAMP\htdocs\portal\concrete\src\Http\Middleware\CookieMiddleware.php(37): Concrete\Core\Http\Middleware\MiddlewareDelegate->next
C:\MAMP\htdocs\portal\concrete\src\Http\Middleware\MiddlewareDelegate.php(38): Concrete\Core\Http\Middleware\CookieMiddleware->process
C:\MAMP\htdocs\portal\concrete\src\Http\Middleware\ApplicationMiddleware.php(29): Concrete\Core\Http\Middleware\MiddlewareDelegate->next
C:\MAMP\htdocs\portal\concrete\src\Http\Middleware\MiddlewareDelegate.php(38): Concrete\Core\Http\Middleware\ApplicationMiddleware->process
C:\MAMP\htdocs\portal\concrete\src\Http\Middleware\MiddlewareStack.php(86): Concrete\Core\Http\Middleware\MiddlewareDelegate->next
C:\MAMP\htdocs\portal\concrete\src\Http\DefaultServer.php(85): Concrete\Core\Http\Middleware\MiddlewareStack->process
C:\MAMP\htdocs\portal\concrete\src\Foundation\Runtime\Run\DefaultRunner.php(119): Concrete\Core\Http\DefaultServer->handleRequest
C:\MAMP\htdocs\portal\concrete\src\Foundation\Runtime\DefaultRuntime.php(102): Concrete\Core\Foundation\Runtime\Run\DefaultRunner->run
C:\MAMP\htdocs\portal\concrete\dispatcher.php(36): Concrete\Core\Foundation\Runtime\DefaultRuntime->run
C:\MAMP\htdocs\portal\index.php(3): null->require
添付: 11_.JPG
 

Re: 【質問】ページ権限設定&ワークフロー設定がうまくいきません

2018年12月25日 at 17:58
通知設定画面のキャプチャを添付していただいてもよろしいでしょうか。

/index.php/dashboard/system/registration/notification
 

Re: Re: 【質問】ページ権限設定&ワークフロー設定がうまくいきません

2018年12月26日 at 9:38
菱川様

お手間を掛けさせて申し訳ございません。
通知設定画面添付いたします。

初歩的なところでそもそも設定してなかったのかもしれません
(いろいろ試行錯誤する中で抜けてしまっています)


TESTページが削除できないのもこの辺りでしょうか?
ご教授いただけますと幸いです。
添付: 12_.jpg
 

Re: Re: 【質問】ページ権限設定&ワークフロー設定がうまくいきません

2018年12月26日 at 12:03
菱川様

度々失礼いたします。
自己解決できたようです。
(ただ、次はページタイプを追加する際にエラーが表出しました。
 後半に記述いたします)

<設定>
 ・通知設定を現存するグループに変更
 ・TESTページがエラーにならずに削除できた
 ・システムと設定→ワークフロー→ワークフローへのアクセス を以下の設定に変更
  
  承認か却下   :管理者
  エントリーの通知:管理者 編集者
  承認を通知   :管理者 編集者
  却下を通知   :管理者 編集者

 ・編集者がページ更新を行った際の「ワークフローへ送信」ボタン表出
 ・管理者ようこそ画面・最新に 要承認件数 表示
 ・承認対象ページで却下・承認ボタン表出


【確認させてください】
システムと設定→ワークフロー→ワークフローへのアクセスの設定は

  
  承認か却下   :管理者
  エントリーの通知:管理者 編集者
  承認を通知   :管理者 編集者
  却下を通知   :管理者 編集者

で正しいのでしょうか。(目的の「ワークフローへ送信」ボタンが表出しているので目的は達成しているのですが)

「世界一わかりやすいConcrete5」P223には”承認か却下”にしか管理者が設定されておらず、
他のWEBサイトでも概ね同様の記述です。

上記設定で問題なければ、そのようにして進めたいと考えています。


【新たな課題】
  ・新規でページタイプを追加(ここまでは問題なし)
  ・ページタイプの権限ボタンを押下 → エラー
 ※デフォルトページタイプ"ページ”を"コピー"しても同様のエラー発生
  ただし、新規ページタイプは作成される

<心当たり>
  ・「ワークフローへ送信」非表示現象切り分けのため、
   作成済みページの複数あったページタイプをすべてデフォルト”ページ”に
   切り替え、作成したページタイプを削除した

  ・デフォルト"ページ”の権限設定は添付14の内容
   (変更を承認に「編集者」を追加)

<エラー記述>
Doctrine \ DBAL \ Exception \ SyntaxErrorException
An exception occurred while executing 'select cID from Pages where cParentID in () and cInheritPermissionsFromCID = ': SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') and cInheritPermissionsFromCID =' at line 1


Stack frames (35)
34
Doctrine\DBAL\Exception\SyntaxErrorException
…\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\AbstractMySQLDriver.php90
33
Doctrine\DBAL\Driver\AbstractMySQLDriver convertException
…\vendor\doctrine\dbal\lib\Doctrine\DBAL\DBALException.php128
32
Doctrine\DBAL\DBALException driverExceptionDuringQuery
…\vendor\doctrine\dbal\lib\Doctrine\DBAL\Connection.php964
31
Doctrine\DBAL\Driver\PDOException
…\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php106
30
PDOException
…\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php104
29
PDO query
…\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOConnection.php104
28
Doctrine\DBAL\Driver\PDOConnection query
…\vendor\doctrine\dbal\lib\Doctrine\DBAL\Connection.php954
27
Doctrine\DBAL\Connection query
…\src\Database\Connection\Connection.php80
26
call_user_func_array
…\src\Database\Connection\Connection.php80
25
Concrete\Core\Database\Connection\Connection query
…\src\Page\Page.php2147
24
Concrete\Core\Page\Page updatePermissionsCollectionID
…\src\Page\Page.php2112
23
Concrete\Core\Page\Page setPermissionsToManualOverride
…\src\Page\Type\Type.php307
22
Concrete\Core\Page\Type\Type getPageTypePageTemplateDefaultPageObject
…\controllers\single_page\dashboard\pages\types\permissions.php28
21
Concrete\Controller\SinglePage\Dashboard\Pages\Types\Permissions view
…\src\Controller\AbstractController.php294
20
call_user_func_array
…\src\Controller\AbstractController.php294
19
Concrete\Core\Controller\AbstractController runAction
…\src\Http\ResponseFactory.php188
18
Concrete\Core\Http\ResponseFactory controller
…\src\Http\ResponseFactory.php393
17
Concrete\Core\Http\ResponseFactory collection
…\src\Routing\DispatcherRouteCallback.php34
16
Concrete\Core\Routing\DispatcherRouteCallback execute
…\src\Http\DefaultDispatcher.php130
15
Concrete\Core\Http\DefaultDispatcher handleDispatch
…\src\Http\DefaultDispatcher.php57
14
Concrete\Core\Http\DefaultDispatcher dispatch
…\src\Http\Middleware\DispatcherDelegate.php39
13
Concrete\Core\Http\Middleware\DispatcherDelegate next
…\src\Http\Middleware\ThumbnailMiddleware.php71
12
Concrete\Core\Http\Middleware\ThumbnailMiddleware process
…\src\Http\Middleware\MiddlewareDelegate.php38
11
Concrete\Core\Http\Middleware\MiddlewareDelegate next
…\src\Http\Middleware\FrameOptionsMiddleware.php39
10
Concrete\Core\Http\Middleware\FrameOptionsMiddleware process
…\src\Http\Middleware\MiddlewareDelegate.php38
9
Concrete\Core\Http\Middleware\MiddlewareDelegate next
…\src\Http\Middleware\CookieMiddleware.php37
8
Concrete\Core\Http\Middleware\CookieMiddleware process
…\src\Http\Middleware\MiddlewareDelegate.php38
7
Concrete\Core\Http\Middleware\MiddlewareDelegate next
…\src\Http\Middleware\ApplicationMiddleware.php29
6
Concrete\Core\Http\Middleware\ApplicationMiddleware process
…\src\Http\Middleware\MiddlewareDelegate.php38
5
Concrete\Core\Http\Middleware\MiddlewareDelegate next
…\src\Http\Middleware\MiddlewareStack.php86
4
Concrete\Core\Http\Middleware\MiddlewareStack process
…\src\Http\DefaultServer.php85
3
Concrete\Core\Http\DefaultServer handleRequest
…\src\Foundation\Runtime\Run\DefaultRunner.php119
2
Concrete\Core\Foundation\Runtime\Run\DefaultRunner run
…\src\Foundation\Runtime\DefaultRuntime.php102
1
Concrete\Core\Foundation\Runtime\DefaultRuntime run
…\dispatcher.php36
0
require
C:\MAMP\htdocs\portal\index.php3


C:\MAMP\htdocs\portal\concrete\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\AbstractMySQLDriver.php
return new Exception\InvalidFieldNameException($message, $exception);

case '1052':
case '1060':
case '1110':
return new Exception\NonUniqueFieldNameException($message, $exception);

case '1064':
case '1149':
case '1287':
case '1341':
case '1342':
case '1343':
case '1344':
case '1382':
case '1479':
case '1541':
case '1554':
case '1626':
return new Exception\SyntaxErrorException($message, $exception);

case '1044':
case '1045':
case '1046':
case '1049':
case '1095':
case '1142':
case '1143':
case '1227':
case '1370':
case '2002':
case '2005':
return new Exception\ConnectionException($message, $exception);

case '1048':
case '1121':
case '1138':
case '1171':
case '1252':
case '1263':
Environment & details:
Concrete5



情報が不足していましたらご指示をいただければ
ご報告いたします。

解消方法がございましたらご教授お願いいたします。
添付: 13_.jpg 14_.jpg
 

Re: 【質問】ページ権限設定&ワークフロー設定がうまくいきません

2018年12月26日 at 17:40
やはり通知設定に存在しないグループが設定されていたため、それがエラーの原因だったようですね。開発元に報告しておきます。

通知の設定については、通知を受け取りたい方に設定していただければ問題ありません。何が正しいということは特にありません。
 

Re: 【質問】ページ権限設定&ワークフロー設定がうまくいきません

2018年12月27日 at 9:27
菱川様

ご確認、ご回答ありがとうございます。
承認系は問題なく稼働できるようになりました。
また、通知設定につきましても承知いたしました。

別件、ページタイプの新規コピーまたは新規追加ページタイプに権限を付与する際に
エラーが発症してしまいました。

新たなトピックで症状を記述いたしますので
ご指南いただけますと幸いです。
 

Re: 【質問】ページ権限設定&ワークフロー設定がうまくいきません

2018年12月29日 at 23:22
ご報告を元に修正リクエストを送りました。次バージョンではエラーは発生しなくなると思います。
http://github.com/concrete5/concrete5/pull/7440
 

Re: 【質問】ページ権限設定&ワークフロー設定がうまくいきません

2019年1月16日 at 14:58
菱川様

お礼が遅くなり申し訳ございません。
ご対応感謝申し上げます。

今後も不明な点が発生しましたら
ご教示いただけますと幸いです。