mirror of
https://github.com/sasjs/server.git
synced 2026-01-10 16:00:05 +00:00
refactor: code in permission controller
This commit is contained in:
@@ -171,23 +171,42 @@ const createPermission = async ({
|
|||||||
setting
|
setting
|
||||||
})
|
})
|
||||||
|
|
||||||
let user, group, client
|
let user: UserResponse | undefined
|
||||||
|
let group: GroupResponse | undefined
|
||||||
|
let clientId: string | undefined
|
||||||
|
|
||||||
switch (principalType) {
|
switch (principalType) {
|
||||||
case 'user':
|
case 'user':
|
||||||
user = await User.findOne({ id: principalId })
|
const userInDB = await User.findOne({ id: principalId })
|
||||||
if (!user) throw new Error('User not found.')
|
if (!userInDB) throw new Error('User not found.')
|
||||||
permission.user = user._id
|
|
||||||
|
permission.user = userInDB._id
|
||||||
|
|
||||||
|
user = {
|
||||||
|
id: userInDB.id,
|
||||||
|
username: userInDB.username,
|
||||||
|
displayName: userInDB.displayName
|
||||||
|
}
|
||||||
break
|
break
|
||||||
case 'group':
|
case 'group':
|
||||||
group = await Group.findOne({ groupId: principalId })
|
const groupInDB = await Group.findOne({ groupId: principalId })
|
||||||
if (!group) throw new Error('Group not found.')
|
if (!groupInDB) throw new Error('Group not found.')
|
||||||
permission.group = group._id
|
|
||||||
|
permission.group = groupInDB._id
|
||||||
|
|
||||||
|
group = {
|
||||||
|
groupId: groupInDB.groupId,
|
||||||
|
name: groupInDB.name,
|
||||||
|
description: groupInDB.description
|
||||||
|
}
|
||||||
break
|
break
|
||||||
case 'client':
|
case 'client':
|
||||||
client = await Client.findOne({ clientId: principalId })
|
const clientInDB = await Client.findOne({ clientId: principalId })
|
||||||
if (!client) throw new Error('Client not found.')
|
if (!clientInDB) throw new Error('Client not found.')
|
||||||
permission.client = client._id
|
|
||||||
|
permission.client = clientInDB._id
|
||||||
|
|
||||||
|
clientId = clientInDB.clientId
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
throw new Error('Invalid principal type.')
|
throw new Error('Invalid principal type.')
|
||||||
@@ -199,17 +218,9 @@ const createPermission = async ({
|
|||||||
permissionId: savedPermission.permissionId,
|
permissionId: savedPermission.permissionId,
|
||||||
uri: savedPermission.uri,
|
uri: savedPermission.uri,
|
||||||
setting: savedPermission.setting,
|
setting: savedPermission.setting,
|
||||||
user: !!user
|
user,
|
||||||
? { id: user.id, username: user.username, displayName: user.displayName }
|
group,
|
||||||
: undefined,
|
clientId
|
||||||
group: !!group
|
|
||||||
? {
|
|
||||||
groupId: group.groupId,
|
|
||||||
name: group.name,
|
|
||||||
description: group.description
|
|
||||||
}
|
|
||||||
: undefined,
|
|
||||||
clientId: !!client ? client.clientId : undefined
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user