aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/models/activitypub
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2019-12-05 14:57:14 +0100
committerChocobozzz <me@florianbigard.com>2019-12-05 14:57:14 +0100
commit77e0851758595de2642b405cff8960f02ced60eb (patch)
tree6858298627b97a450eaef388ff7222e0e5a2e1c4 /server/models/activitypub
parent7b7d4e2a6adde8a8aa0b4c0048bddd448a6a0093 (diff)
downloadPeerTube-77e0851758595de2642b405cff8960f02ced60eb.tar.gz
PeerTube-77e0851758595de2642b405cff8960f02ced60eb.tar.zst
PeerTube-77e0851758595de2642b405cff8960f02ced60eb.zip
Ensure local actors preferredName don't already exist
Before applying this commit, check you don't have duplicates local actors in your database: select "preferredUsername" from actor where "serverId" is null group by "preferredUsername" having count(*) > 0 If you have some results, it seems you have duplicate channels/accounts. For every entry, you'll have to change the preferredUsername of the entry you want (so they are unique). The updated actors could have some federations issues. Sorry.
Diffstat (limited to 'server/models/activitypub')
-rw-r--r--server/models/activitypub/actor.ts15
1 files changed, 14 insertions, 1 deletions
diff --git a/server/models/activitypub/actor.ts b/server/models/activitypub/actor.ts
index 42a24b583..66a13b857 100644
--- a/server/models/activitypub/actor.ts
+++ b/server/models/activitypub/actor.ts
@@ -48,6 +48,7 @@ import {
48 MActorWithInboxes 48 MActorWithInboxes
49} from '../../typings/models' 49} from '../../typings/models'
50import * as Bluebird from 'bluebird' 50import * as Bluebird from 'bluebird'
51import { Op } from 'sequelize'
51 52
52enum ScopeNames { 53enum ScopeNames {
53 FULL = 'FULL' 54 FULL = 'FULL'
@@ -115,7 +116,19 @@ export const unusedActorAttributesForAPI = [
115 }, 116 },
116 { 117 {
117 fields: [ 'preferredUsername', 'serverId' ], 118 fields: [ 'preferredUsername', 'serverId' ],
118 unique: true 119 unique: true,
120 where: {
121 serverId: {
122 [Op.ne]: null
123 }
124 }
125 },
126 {
127 fields: [ 'preferredUsername' ],
128 unique: true,
129 where: {
130 serverId: null
131 }
119 }, 132 },
120 { 133 {
121 fields: [ 'inboxUrl', 'sharedInboxUrl' ] 134 fields: [ 'inboxUrl', 'sharedInboxUrl' ]