ユーザー

  • 目的・用途

本機能は、ユーザーの新規作成、編集、削除を行う際に使用する機能である。

  • 利用方法

【Administration > ユーザー管理(User Management) > ユーザー(User)画面】にて操作を行う。

  • 利用可能なロール

ロール システム
管理者
リポジトリ
管理者
コミュニティ
管理者
登録ユーザー 一般ユーザー ゲスト
(未ログイン)
利用可否
  • 機能内容

  • 【ユーザー(User)画面】には以下のタブが表示される

    • 一覧(List)

    • 作成(Create)

    • フィルターを追加▼(Add Filter▼)

      • 一覧(List)タブ選択中のみ表示

      • 外観はタブだが機能としてはプルダウンメニュー

    • 選択▼(With selected▼)

      • 一覧(List)タブ選択中のみ表示

      • 外観はタブだが機能としてはプルダウンメニュー

    • 編集(Edit)

      • 一覧(List)タブ選択中は非表示

      • 一覧(List)タブの操作によって表示される

      • 編集(Edit)タブまたは詳細(Details)タブ選択中に表示

    • 詳細(Details)

      • 一覧(List)タブ選択中は非表示

      • 一覧(List)タブの操作によって表示される

      • 編集(Edit)タブまたは詳細(Details)タブ選択中に表示

  • 「一覧」(List)タブに登録されているユーザーを表示する

    • 表示項目は以下の通りである

      • チェックボックス

      • アクション(閲覧・編集・削除を表すアイコン)

      • 「Id」

      • 「Email」

      • 「Active」

      • 「Confirmed At」

      • 「Last Login At」
        フォーマット:「YYYY-MM-DDThh:mm:ss.tttttt」

      • 「Current Login At」
        フォーマット:「YYYY-MM-DDThh:mm:ss.tttttt」

      • 「Last Login IP」

      • 「Current Login IP」

      • 「Login Count」

    • 表示内容は、accounts_userテーブル、accounts_userroleテーブルから取得した情報である

    • 「フィルターを追加▼」(Add Filter▼)ボタンをクリックすると、以下の追加可能なフィルターリストを表示し、フィルター名をクリックすると当該フィルターの入力エリアを追加する

      • フィルター名

        • 「Id」

          • フィルター方式の選択肢:フィルター方式の選択肢:等しい(equals)、等しくない(not equal)、より大きい(greater than)、より小さい(smaller than)、空(empty)、一覧にある(in list)、一覧にない(not in list)

          • 入力された文字列を使い、選択したフィルター方式で絞り込む

        • 「Email」

          • フィルター方式の選択肢:含む(contains)、含まれていません(not contains)、等しい(equals)、等しくない(not equal)、空(empty)、一覧にある(in list)、一覧にない(not in list)

          • 入力された文字列を使い、選択したフィルター方式で絞り込む

        • 「Active」

          • フィルター方式の選択肢:等しい(equals)、等しくない(not equal)

          • 入力エリアではなく選択肢「はい」「いいえ」を使い、「はい」ならアクティブなユーザー、「いいえ」ならそうでないユーザーを絞り込む

        • 「Confirmed At」

          • フィルター方式の選択肢:等しい(equals)、等しくない(not equal)、より大きい(greater than)、より小さい(smaller than)、間(between)、間ではなく(not between)、空(empty)

          • 入力エリアをクリックするとカレンダーが表示されるので、日時を選択して[Apply]押下することで絞り込む日時を設定する(入力することもできる)

          • 日時を設定しなかった場合は現在日時を設定する

        • 「Last Login At」

          • フィルター方式の選択肢:上記の「Confirmed At」と同じである
        • 「Current Login At」

          • フィルター方式の選択肢:上記の「Confirmed At」と同じである
        • 「Login Count」

          • フィルター方式の選択肢:上記の「Id」と同じである

          • 入力された文字列を使い、選択したフィルター方式で絞り込む

      • 設定したフィルターは[適用(Apply)]ボタンを押下することで一覧に適用される

      • [フィルターをリセット(Reset filter)]ボタンを押下すると、設定したフィルターがリセットされる

    • 「選択▼」(With selected▼)ボタンをクリックすると、以下の追加可能な機能(削除、Activate、Inactivateボタン)を表示する

      • 機能:Activate、Inactivate

        • レコードにチェックを入れない場合、「Activate」「Inactivate」または「削除」ボタンを押すと、エラーメッセージを表示する
          メッセージ:
           日本語:「少なくとも一つのレコードを選択してください。」
           英語:「Please select at least one record.」

        • レコードにチェックを入れて「Activate」ボタンを押すと、確認ダイアログを表示する
          メッセージ:「Are you sure you want to activate selected users?」

          • [OK]ボタンを押すと、該当ユーザーを活動化する
            メッセージ:
             日本語:「ユーザーを無効化しました」
             英語:「User(s) were successfully inactivated.」

          • [キャンセル(Cancel)]ボタンを押すと、確認ダイアログを閉じる

        • レコードにチェックを入れて「Inactivate」ボタンを押すと、確認ダイアログを表示する
          メッセージ:「Are you sure you want to inactivate selected users?」

          • [OK]ボタンを押すと、該当ユーザーを無効化し、メッセージを画面上部に表示する
            メッセージ:
             日本語:「ユーザーを無効化しました」
             英語:「User(s) were successfully inactivated.」

          • [キャンセル(Cancel)]ボタンを押すと、確認ダイアログを閉じる

      • 機能:削除

        • レコードにチェックを入れない場合、「削除」(Delete)ボタンを押すと、エラーメッセージを表示する
          メッセージ:
           日本語:「少なくとも一つのレコードを選択してください。」
           英語:「Please select at least one record.」

        • レコードにチェックを入れる場合、「削除」(Delete)ボタンを押すと、確認ダイアログを表示する
          メッセージ:
           日本語:「選択したレコードを削除してもよろしいですか。」
           英語:「Are you sure you want to delete selected records?」

          • [OK]ボタンを押すと、該当ロールを削除し、メッセージを画面上部に表示する
            メッセージ:
             日本語:「レコード数+レコードが正常に削除されました。」
             英語:「Record was successfully deleted.」

          • [キャンセル(Cancel)]ボタンを押すと、確認ダイアログを閉じる

    • 検索テキストボックスでユーザーを検索する

      • プレースホルダー:「Search: id, email, active, confirmed_at, last_login_at, current_login_at, Last Login IP, Current Login IP, login_count」

      • 任意のテキストを入力し、キーボードでの「Enter」を押すと、ユーザー検索を行う

      • テキストボックスの右端での[X]ボタンを押すと、検索条件がクリアーされる

    • ユーザー行にて目アイコンを押すと、該当ユーザーの詳細情報を「詳細」(Details)タブに表示する

      • 表示項目:Id、Email、Active、Confirmed At、Last Login At、Current Login At、Last Login IP、Current Login IP、Login Count
    • ユーザー行にて鉛筆アイコンを押すと、該当ユーザーを「編集」(Edit)タブに表示し、ユーザーの情報が編集できる

      • 入力情報は以下の通りである

        • 「Email」:必須項目

        • 「Password」
          デフォルト値:その都度ランダムなパスワードが生成される

        • 「Active」
          デフォルト:チェックなし

        • 「Roles」
          デフォルト:空白
          選択肢:【Administration > ユーザー管理(User Management) > ロール(Role)画面】に登録されているロール一覧
          ※選択肢にあるもの以外は設定できない

        • 「Send User Notification」:登録されているアカウント情報をメールに送信する
          デフォルト:チェックなし

      • [保存(Save)]ボタンを押すと、設定された内容をユーザー一覧に追加して、メッセージをユーザー一覧に表示させる
        メッセージ:
         日本語:「レコードが正常に作成されました。」
         英語:「Record was successfully created.」

      • [保存してもう一つ追加(Save and Add Another)]ボタンを押すと、設定された内容をユーザー一覧に追加して、他のユーザーを追加設定可能とする
        メッセージを画面上部に表示させる
        メッセージ:
         日本語:「レコードが正常に作成されました。」
         英語:「Record was successfully created.」

      • [保存して編集を続ける(Save and Continute Editing)]ボタンを押すと、設定された内容をユーザー一覧に追加して、該当ユーザーの編集を続けることを可能とする
        メッセージを画面上部に表示させる
        メッセージ:
         日本語:「レコードが正常に作成されました。」
         英語:「Record was successfully created.」

      • [キャンセル(Cancel)]ボタンを押すと、設定された内容をユーザー一覧に追加せず、「一覧」(List)タブに戻る

      • 表示内容は、accounts_userテーブル、accounts_userroleテーブルから取得した情報である

      • 「Password」については、暗号化された状態で表示される

  • 「一覧」(List)から「作成」(Create)タブを押すと、「作成」(Create)タブに移動し、ユーザーを新規作成できる

    • 入力情報とボタン操作は、編集タブと同じである
  • 「編集」(Edit)、「作成」(Create)ともに、[保存(Save)]ボタンや[保存してもう一つ追加(Save and Add Another)]すると、パスワードが入力されていた場合はハッシュ化される

    • 「Password」に全角文字を入力していると、以下のエラーメッセージが表示されて保存されない

      • エラーメッセージ:
        日本語:「レコードの更新に失敗しました。'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)」
        英語:「 to update record. 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)」
    • ハッシュ化されたパスワードがさらにハッシュ化されることはない

  • 関連モジュール

  • invenio_accounts(WEKOソース内にforkされていない箇所がある)
  • 処理概要

  • 編集タブで[保存(Save)]ボタンを押すと、以下の内容でフォームデータが送信される

    • 「email」:画面上の「Email」で入力されたもの

    • 「password」:画面上の「Password」で入力されたもの

    • 「active」:画面上の「Active」がチェックされていた場合のみ、「y」が設定される
      チェックされていなかった場合はフォームデータに含まれない

    • 「roles」:画面上の「Roles」でロールが選択されていた場合のみ、
      チェックされていなかった場合はフォームデータに含まれない

    • 「notification」:画面上の「Send User Notification」がチェックされていた場合のみ、「y」が設定される
      チェックされていなかった場合はフォームデータに含まれない

  • パスワードはflask_security.utils. hash_passwordメソッドでハッシュ化している

    • 全角文字を設定していると、この中のasciiでデコードする段階で失敗する
  • 送信されたフォームデータによって、accounts_userテーブルとaccounts_userroleテーブルの内容が更新される

  • 更新履歴

日付 GitHubコミットID 更新内容

2023/08/31

353ba1deb094af5056a58bb40f07596b8e95a562 初版作成

results matching ""

    No results matching ""