-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
// SPDX-FileCopyrightText: 2025 Shota FUJI <pockawoooh@gmail.com>
// SPDX-License-Identifier: AGPL-3.0-only
edition = "2023";
package yamori.workspace.v2;
import "yamori/workspace/v2/login_method.proto";
import "yamori/workspace/v2/user_id.proto";
import "yamori/workspace/v2/user_permissions.proto";
import "yamori/workspace/v2/worker.proto";
option go_package = "pocka.jp/x/yamori/proto/go/workspace/v2";
// ワークスペースにログイン可能なユーザ。
message User {
// ワークスペースで一意な ID 。
UserID id = 1;
// ログインユーザ名。社員 ID でもハンドルネームでも本名でも。
string name = 2;
// 公開名。
string display_name = 3;
// ログイン設定。
LoginMethod login_method = 4;
// 管理者ユーザかどうか。ワークスペースには必ず一人以上の管理者ユーザが
// 存在する。
// 管理者ユーザは全てのデータに対する全ての操作が行える。
// 全ての権限を持った通常ユーザとの違いは、将来のアップデートによって
// 新しい権限が追加された際、管理者ユーザはその権限を自動的に持つが
// 通常ユーザには与えられない。これは新しい権限を持つユーザが存在せず、
// その新しい権限を持つユーザを誰も作成できないデッドロック状態を回避
// するための設計となる。
bool is_admin = 5;
UserPermissions permissions = 6;
// 労働者としての属性。このフィールドが空の場合はこのユーザは労働者ではない、
// ということになり記録はつけられない。
Worker worker = 7;
}