component: FollowsComponent,
canActivate: [ UserRightGuard ],
data: {
- userRight: UserRight.MANAGE_APPLICATION_FOLLOW
+ userRight: UserRight.MANAGE_SERVER_FOLLOW
},
children: [
{
@Injectable()
export class FollowService {
- private static BASE_APPLICATION_URL = API_URL + '/api/v1/application'
+ private static BASE_APPLICATION_URL = API_URL + '/api/v1/server'
constructor (
private authHttp: HttpClient,
List users
</a>
- <a *ngIf="hasApplicationFollowRight()" routerLink="/admin/follows" routerLinkActive="active">
+ <a *ngIf="hasServerFollowRight()" routerLink="/admin/follows" routerLinkActive="active">
<span class="hidden-xs glyphicon glyphicon-cloud"></span>
Manage follows
</a>
return this.auth.getUser().hasRight(UserRight.MANAGE_USERS)
}
- hasApplicationFollowRight () {
- return this.auth.getUser().hasRight(UserRight.MANAGE_APPLICATION_FOLLOW)
+ hasServerFollowRight () {
+ return this.auth.getUser().hasRight(UserRight.MANAGE_SERVER_FOLLOW)
}
hasVideoAbusesRight () {
private routesPerRight = {
[UserRight.MANAGE_USERS]: '/admin/users',
- [UserRight.MANAGE_APPLICATION_FOLLOW]: '/admin/friends',
+ [UserRight.MANAGE_SERVER_FOLLOW]: '/admin/friends',
[UserRight.MANAGE_VIDEO_ABUSES]: '/admin/video-abuses',
[UserRight.MANAGE_VIDEO_BLACKLIST]: '/admin/video-blacklist'
}
const adminRights = [
UserRight.MANAGE_USERS,
- UserRight.MANAGE_APPLICATION_FOLLOW,
+ UserRight.MANAGE_SERVER_FOLLOW,
UserRight.MANAGE_VIDEO_ABUSES,
UserRight.MANAGE_VIDEO_BLACKLIST
]
import { oauthClientsRouter } from './oauth-clients'
import { configRouter } from './config'
-import { applicationRouter } from './server'
+import { serverRouter } from './server'
import { usersRouter } from './users'
import { videosRouter } from './videos'
const apiRouter = express.Router()
-apiRouter.use('/application', applicationRouter)
+apiRouter.use('/server', serverRouter)
apiRouter.use('/oauth-clients', oauthClientsRouter)
apiRouter.use('/config', configRouter)
apiRouter.use('/users', usersRouter)
import { followValidator } from '../../../middlewares/validators/servers'
import { followersSortValidator, followingSortValidator } from '../../../middlewares/validators/sort'
-const applicationFollowsRouter = express.Router()
+const serverFollowsRouter = express.Router()
-applicationFollowsRouter.get('/following',
+serverFollowsRouter.get('/following',
paginationValidator,
followingSortValidator,
setFollowingSort,
asyncMiddleware(listFollowing)
)
-applicationFollowsRouter.post('/follow',
+serverFollowsRouter.post('/follow',
authenticate,
- ensureUserHasRight(UserRight.MANAGE_APPLICATION_FOLLOW),
+ ensureUserHasRight(UserRight.MANAGE_SERVER_FOLLOW),
followValidator,
setBodyHostsPort,
asyncMiddleware(follow)
)
-applicationFollowsRouter.get('/followers',
+serverFollowsRouter.get('/followers',
paginationValidator,
followersSortValidator,
setFollowersSort,
// ---------------------------------------------------------------------------
export {
- applicationFollowsRouter
+ serverFollowsRouter
}
// ---------------------------------------------------------------------------
async function listFollowing (req: express.Request, res: express.Response, next: express.NextFunction) {
- const applicationAccount = await getServerAccount()
- const resultList = await db.AccountFollow.listFollowingForApi(applicationAccount.id, req.query.start, req.query.count, req.query.sort)
+ const serverAccount = await getServerAccount()
+ const resultList = await db.AccountFollow.listFollowingForApi(serverAccount.id, req.query.start, req.query.count, req.query.sort)
return res.json(getFormattedObjects(resultList.data, resultList.total))
}
async function listFollowers (req: express.Request, res: express.Response, next: express.NextFunction) {
- const applicationAccount = await getServerAccount()
- const resultList = await db.AccountFollow.listFollowersForApi(applicationAccount.id, req.query.start, req.query.count, req.query.sort)
+ const serverAccount = await getServerAccount()
+ const resultList = await db.AccountFollow.listFollowersForApi(serverAccount.id, req.query.start, req.query.count, req.query.sort)
return res.json(getFormattedObjects(resultList.data, resultList.total))
}
import * as express from 'express'
-import { applicationFollowsRouter } from './follows'
+import { serverFollowsRouter } from './follows'
-const applicationRouter = express.Router()
+const serverRouter = express.Router()
-applicationRouter.use('/', applicationFollowsRouter)
+serverRouter.use('/', serverFollowsRouter)
// ---------------------------------------------------------------------------
export {
- applicationRouter
+ serverRouter
}
if (isTestInstance() === true) {
CONSTRAINTS_FIELDS.VIDEOS.DURATION.max = 14
FRIEND_SCORE.BASE = 20
- JOBS_FETCHING_INTERVAL = 10000
+ JOBS_FETCHING_INTERVAL = 2000
REMOTE_SCHEME.HTTP = 'http'
REMOTE_SCHEME.WS = 'ws'
STATIC_MAX_AGE = '0'
--- /dev/null
+import * as request from 'supertest'
+
+import { wait } from './miscs'
+
+function getFollowersListPaginationAndSort (url: string, start: number, count: number, sort: string) {
+ const path = '/api/v1/servers/followers'
+
+ return request(url)
+ .get(path)
+ .query({ start })
+ .query({ count })
+ .query({ sort })
+ .set('Accept', 'application/json')
+ .expect(200)
+ .expect('Content-Type', /json/)
+}
+
+function getFollowingListPaginationAndSort (url: string, start: number, count: number, sort: string) {
+ const path = '/api/v1/servers/following'
+
+ return request(url)
+ .get(path)
+ .query({ start })
+ .query({ count })
+ .query({ sort })
+ .set('Accept', 'application/json')
+ .expect(200)
+ .expect('Content-Type', /json/)
+}
+
+async function follow (follower: string, following: string[], accessToken: string, expectedStatus = 204) {
+ const path = '/api/v1/servers/follow'
+
+ const res = await request(follower)
+ .post(path)
+ .set('Accept', 'application/json')
+ .set('Authorization', 'Bearer ' + accessToken)
+ .send({ 'hosts': following })
+ .expect(expectedStatus)
+
+ // Wait request propagation
+ await wait(1000)
+
+ return res
+}
+
+// ---------------------------------------------------------------------------
+
+export {
+ getFollowersListPaginationAndSort,
+ getFollowingListPaginationAndSort,
+ follow
+}
+++ /dev/null
-import * as request from 'supertest'
-
-import { wait } from './miscs'
-
-function getFriendsList (url: string) {
- const path = '/api/v1/pods/'
-
- return request(url)
- .get(path)
- .set('Accept', 'application/json')
- .expect(200)
- .expect('Content-Type', /json/)
-}
-
-function getPodsListPaginationAndSort (url: string, start: number, count: number, sort: string) {
- const path = '/api/v1/pods/'
-
- return request(url)
- .get(path)
- .query({ start })
- .query({ count })
- .query({ sort })
- .set('Accept', 'application/json')
- .expect(200)
- .expect('Content-Type', /json/)
-}
-
-async function makeFriends (url: string, accessToken: string, expectedStatus = 204) {
- // Which pod makes friends with which pod
- const friendsMatrix = {
- 'http://localhost:9001': [
- 'localhost:9002'
- ],
- 'http://localhost:9002': [
- 'localhost:9003'
- ],
- 'http://localhost:9003': [
- 'localhost:9001'
- ],
- 'http://localhost:9004': [
- 'localhost:9002'
- ],
- 'http://localhost:9005': [
- 'localhost:9001',
- 'localhost:9004'
- ],
- 'http://localhost:9006': [
- 'localhost:9001',
- 'localhost:9002',
- 'localhost:9003'
- ]
- }
- const path = '/api/v1/pods/make-friends'
-
- // The first pod make friend with the third
- const res = await request(url)
- .post(path)
- .set('Accept', 'application/json')
- .set('Authorization', 'Bearer ' + accessToken)
- .send({ 'hosts': friendsMatrix[url] })
- .expect(expectedStatus)
-
- // Wait request propagation
- await wait(1000)
-
- return res
-}
-
-async function quitFriends (url: string, accessToken: string, expectedStatus = 204) {
- const path = '/api/v1/pods/quit-friends'
-
- // The first pod make friend with the third
- const res = await request(url)
- .get(path)
- .set('Accept', 'application/json')
- .set('Authorization', 'Bearer ' + accessToken)
- .expect(expectedStatus)
-
- // Wait request propagation
- await wait(1000)
-
- return res
-}
-
-function quitOneFriend (url: string, accessToken: string, friendId: number, expectedStatus = 204) {
- const path = '/api/v1/pods/' + friendId
-
- return request(url)
- .delete(path)
- .set('Accept', 'application/json')
- .set('Authorization', 'Bearer ' + accessToken)
- .expect(expectedStatus)
-}
-
-// ---------------------------------------------------------------------------
-
-export {
- getFriendsList,
- makeFriends,
- quitFriends,
- quitOneFriend,
- getPodsListPaginationAndSort
-}
export enum UserRight {
ALL,
MANAGE_USERS,
- MANAGE_APPLICATION_FOLLOW,
+ MANAGE_SERVER_FOLLOW,
MANAGE_VIDEO_ABUSES,
MANAGE_VIDEO_BLACKLIST,
REMOVE_ANY_VIDEO,