summaryrefslogtreecommitdiff
path: root/src/models
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2019-07-22 10:15:00 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-07-22 10:15:00 +0900
commit85008303f5c292dc0f288e4db5b5a1fbd56879eb (patch)
treeaef4c2cf97c7be45f70a8c39846f0b5cd31cb41a /src/models
parentUpdate dependencies :rocket: (diff)
downloadsharkey-85008303f5c292dc0f288e4db5b5a1fbd56879eb.tar.gz
sharkey-85008303f5c292dc0f288e4db5b5a1fbd56879eb.tar.bz2
sharkey-85008303f5c292dc0f288e4db5b5a1fbd56879eb.zip
Prevent username reusing
Diffstat (limited to 'src/models')
-rw-r--r--src/models/entities/used-username.ts20
-rw-r--r--src/models/index.ts2
2 files changed, 22 insertions, 0 deletions
diff --git a/src/models/entities/used-username.ts b/src/models/entities/used-username.ts
new file mode 100644
index 0000000000..eb90bef6ca
--- /dev/null
+++ b/src/models/entities/used-username.ts
@@ -0,0 +1,20 @@
+import { PrimaryColumn, Entity, Column } from 'typeorm';
+
+@Entity()
+export class UsedUsername {
+ @PrimaryColumn('varchar', {
+ length: 128,
+ })
+ public username: string;
+
+ @Column('timestamp with time zone')
+ public createdAt: Date;
+
+ constructor(data: Partial<UsedUsername>) {
+ if (data == null) return;
+
+ for (const [k, v] of Object.entries(data)) {
+ (this as any)[k] = v;
+ }
+ }
+}
diff --git a/src/models/index.ts b/src/models/index.ts
index 388bdc8f6f..fc40ebfb23 100644
--- a/src/models/index.ts
+++ b/src/models/index.ts
@@ -43,6 +43,7 @@ import { HashtagRepository } from './repositories/hashtag';
import { PageRepository } from './repositories/page';
import { PageLikeRepository } from './repositories/page-like';
import { ModerationLogRepository } from './repositories/moderation-logs';
+import { UsedUsername } from './entities/used-username';
export const Apps = getCustomRepository(AppRepository);
export const Notes = getCustomRepository(NoteRepository);
@@ -64,6 +65,7 @@ export const UserGroups = getCustomRepository(UserGroupRepository);
export const UserGroupJoinings = getRepository(UserGroupJoining);
export const UserGroupInvites = getCustomRepository(UserGroupInviteRepository);
export const UserNotePinings = getRepository(UserNotePining);
+export const UsedUsernames = getRepository(UsedUsername);
export const Followings = getCustomRepository(FollowingRepository);
export const FollowRequests = getCustomRepository(FollowRequestRepository);
export const Instances = getRepository(Instance);