## 概要 [Task3210: 画面修正(Terms画面)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3210) [Task3211:API修正(バージョン取得API)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_sprints/taskboard/OMDSDictation%20%E3%83%81%E3%83%BC%E3%83%A0/OMDSDictation/%E3%82%B9%E3%83%97%E3%83%AA%E3%83%B3%E3%83%88%2023-1?workitem=3211) [Task3212:API修正(バージョン更新API))](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/OMDSDictation/_sprints/taskboard/OMDSDictation%20%E3%83%81%E3%83%BC%E3%83%A0/OMDSDictation/%E3%82%B9%E3%83%97%E3%83%AA%E3%83%B3%E3%83%88%2023-1?workitem=3212) - このPull Requestでの対象/対象外 Click here to read the terms of use.の文言は多言語対応の対象のため、現在一律同じ文言がでます。 第一~第四階層は 上からEULA,PrivacyNotice,DPAが表示されています 第五階層は、 上から、PrivacyNotice,DPAが表示されています - 影響範囲(他の機能にも影響があるか) ユーザアーカイブテーブルにPrivacyNoticeのバージョンを追加 ## レビューポイント 同意済みプライバシーポリシーはユーザーアーカイブの対象だと認識しているが正しいか。 termsテーブルのdocument_typeの値をPrivacyNoticeにしているが、PRIVACY_NOTICEにしたほうがよいか。 ユニットテストに不足はないか。 ## UIの変更 - Before/Afterのスクショなど - スクショ置き場 https://ndstokyo.sharepoint.com/sites/Piranha/Shared%20Documents/Forms/AllItems.aspx?csf=1&web=1&e=hzPw9b&cid=7737ed1b%2D0eb4%2D4331%2Da238%2D14dd35b27e18&FolderCTID=0x012000C0DCEE65AC2177479C3C761CD137C9C9&id=%2Fsites%2FPiranha%2FShared%20Documents%2FGeneral%2FOMDS%2F%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%2FTask3210&viewid=786a81cf%2Dd15f%2D4dc2%2D9e55%2Dc7a729fbc72f ## 動作確認状況 - ローカルで確認 ## 補足 - 相談、参考資料などがあれば
177 lines
3.8 KiB
TypeScript
177 lines
3.8 KiB
TypeScript
import { Account } from '../../../repositories/accounts/entity/account.entity';
|
|
import {
|
|
Entity,
|
|
Column,
|
|
PrimaryGeneratedColumn,
|
|
CreateDateColumn,
|
|
UpdateDateColumn,
|
|
ManyToOne,
|
|
JoinColumn,
|
|
OneToOne,
|
|
OneToMany,
|
|
PrimaryColumn,
|
|
} from 'typeorm';
|
|
import { License } from '../../licenses/entity/license.entity';
|
|
import { UserGroupMember } from '../../user_groups/entity/user_group_member.entity';
|
|
|
|
@Entity({ name: 'users' })
|
|
export class User {
|
|
@PrimaryGeneratedColumn()
|
|
id: number;
|
|
|
|
@Column()
|
|
external_id: string;
|
|
|
|
@Column()
|
|
account_id: number;
|
|
|
|
@Column()
|
|
role: string;
|
|
|
|
@Column({ nullable: true, type: 'varchar' })
|
|
author_id: string | null;
|
|
|
|
@Column({ nullable: true, type: 'varchar' })
|
|
accepted_eula_version: string | null;
|
|
|
|
@Column({ nullable: true, type: 'varchar' })
|
|
accepted_privacy_notice_version: string | null;
|
|
|
|
@Column({ nullable: true, type: 'varchar' })
|
|
accepted_dpa_version: string | null;
|
|
|
|
@Column({ default: false })
|
|
email_verified: boolean;
|
|
|
|
@Column({ default: true })
|
|
auto_renew: boolean;
|
|
|
|
@Column({ default: true })
|
|
license_alert: boolean;
|
|
|
|
@Column({ default: true })
|
|
notification: boolean;
|
|
|
|
@Column({ default: false })
|
|
encryption: boolean;
|
|
|
|
@Column({ nullable: true, type: 'varchar' })
|
|
encryption_password: string | null;
|
|
|
|
@Column({ default: false })
|
|
prompt: boolean;
|
|
|
|
@Column({ nullable: true, type: 'datetime' })
|
|
deleted_at: Date | null;
|
|
|
|
@Column({ nullable: true, type: 'datetime' })
|
|
created_by: string | null;
|
|
|
|
@CreateDateColumn({
|
|
default: () => "datetime('now', 'localtime')",
|
|
type: 'datetime',
|
|
}) // defaultはSQLite用設定値.本番用は別途migrationで設定
|
|
created_at: Date;
|
|
|
|
@Column({ nullable: true, type: 'datetime' })
|
|
updated_by: string | null;
|
|
|
|
@UpdateDateColumn({
|
|
default: () => "datetime('now', 'localtime')",
|
|
type: 'datetime',
|
|
}) // defaultはSQLite用設定値.本番用は別途migrationで設定
|
|
updated_at: Date;
|
|
|
|
@ManyToOne(() => Account, (account) => account.user, {
|
|
createForeignKeyConstraints: false,
|
|
}) // createForeignKeyConstraintsはSQLite用設定値.本番用は別途migrationで設定
|
|
@JoinColumn({ name: 'account_id' })
|
|
account: Account | null;
|
|
|
|
@OneToOne(() => License, (license) => license.user)
|
|
license: License | null;
|
|
|
|
@OneToMany(() => UserGroupMember, (userGroupMember) => userGroupMember.user)
|
|
userGroupMembers: UserGroupMember[] | null;
|
|
}
|
|
|
|
@Entity({ name: 'users_archive' })
|
|
export class UserArchive {
|
|
@PrimaryColumn()
|
|
id: number;
|
|
|
|
@Column()
|
|
external_id: string;
|
|
|
|
@Column()
|
|
account_id: number;
|
|
|
|
@Column()
|
|
role: string;
|
|
|
|
@Column({ nullable: true, type: 'varchar' })
|
|
author_id: string | null;
|
|
|
|
@Column({ nullable: true, type: 'varchar' })
|
|
accepted_eula_version: string | null;
|
|
|
|
@Column({ nullable: true, type: 'varchar' })
|
|
accepted_privacy_notice_version: string | null;
|
|
|
|
@Column({ nullable: true, type: 'varchar' })
|
|
accepted_dpa_version: string | null;
|
|
|
|
@Column()
|
|
email_verified: boolean;
|
|
|
|
@Column()
|
|
auto_renew: boolean;
|
|
|
|
@Column()
|
|
license_alert: boolean;
|
|
|
|
@Column()
|
|
notification: boolean;
|
|
|
|
@Column()
|
|
encryption: boolean;
|
|
|
|
@Column()
|
|
prompt: boolean;
|
|
|
|
@Column({ nullable: true, type: 'datetime' })
|
|
deleted_at: Date | null;
|
|
|
|
@Column({ nullable: true, type: 'datetime' })
|
|
created_by: string | null;
|
|
|
|
@Column()
|
|
created_at: Date;
|
|
|
|
@Column({ nullable: true, type: 'datetime' })
|
|
updated_by: string | null;
|
|
|
|
@Column()
|
|
updated_at: Date;
|
|
|
|
@CreateDateColumn({
|
|
default: () => "datetime('now', 'localtime')",
|
|
type: 'datetime',
|
|
}) // defaultはSQLite用設定値.本番用は別途migrationで設定
|
|
archived_at: Date;
|
|
}
|
|
|
|
export type newUser = Omit<
|
|
User,
|
|
| 'id'
|
|
| 'deleted_at'
|
|
| 'created_at'
|
|
| 'updated_at'
|
|
| 'updated_by'
|
|
| 'created_by'
|
|
| 'account'
|
|
| 'license'
|
|
| 'userGroupMembers'
|
|
| 'email_verified'
|
|
>;
|