Fix API Permissions for Session Key
parent
f621e85f34
commit
83d9a52a94
13
libs/auth.js
13
libs/auth.js
|
|
@ -99,12 +99,13 @@ module.exports = function(s,config,lang){
|
||||||
}else{
|
}else{
|
||||||
getUserBySessionKey(params,function(err,user){
|
getUserBySessionKey(params,function(err,user){
|
||||||
if(user){
|
if(user){
|
||||||
isSessionKey = true
|
createSession(user,{
|
||||||
createSession(apiKey,{
|
auth: params.auth,
|
||||||
details: JSON.parse(user.details),
|
details: JSON.parse(user.details),
|
||||||
|
isSessionKey: true,
|
||||||
permissions: {}
|
permissions: {}
|
||||||
})
|
})
|
||||||
callback(err,user,isSessionKey)
|
callback(err,user,true)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -122,7 +123,7 @@ module.exports = function(s,config,lang){
|
||||||
}
|
}
|
||||||
user.details = s.parseJSON(user.details)
|
user.details = s.parseJSON(user.details)
|
||||||
user.permissions = {}
|
user.permissions = {}
|
||||||
s.api[generatedId] = Object.assign(user,additionalData)
|
s.api[generatedId] = Object.assign({},user,additionalData)
|
||||||
return generatedId
|
return generatedId
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -204,9 +205,9 @@ module.exports = function(s,config,lang){
|
||||||
})
|
})
|
||||||
}else if(params.auth && params.ke){
|
}else if(params.auth && params.ke){
|
||||||
loginWithApiKey(params,function(err,user,isSessionKey){
|
loginWithApiKey(params,function(err,user,isSessionKey){
|
||||||
if(isSessionKey)resetActiveSessionTimer(user)
|
if(isSessionKey)resetActiveSessionTimer(s.api[params.auth])
|
||||||
if(user){
|
if(user){
|
||||||
onSuccess(user)
|
onSuccess(s.api[params.auth])
|
||||||
}else{
|
}else{
|
||||||
onFail()
|
onFail()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1839,6 +1839,7 @@ module.exports = function(s,config,lang){
|
||||||
// provide "user" object given from "s.auth"
|
// provide "user" object given from "s.auth"
|
||||||
const isSubAccount = !!user.details.sub
|
const isSubAccount = !!user.details.sub
|
||||||
const isApiKey = !user.login_type;
|
const isApiKey = !user.login_type;
|
||||||
|
const isSessionKey = user.isSessionKey;
|
||||||
const response = {
|
const response = {
|
||||||
isSubAccount,
|
isSubAccount,
|
||||||
hasAllPermissions: isSubAccount && user.details.allmonitors === '1',
|
hasAllPermissions: isSubAccount && user.details.allmonitors === '1',
|
||||||
|
|
@ -1859,8 +1860,8 @@ module.exports = function(s,config,lang){
|
||||||
'watch_videos',
|
'watch_videos',
|
||||||
'delete_videos',
|
'delete_videos',
|
||||||
].forEach((key) => {
|
].forEach((key) => {
|
||||||
const permissionOff = isApiKey && permissions[key] !== '1';
|
const permissionOff = !isSessionKey && isApiKey && permissions[key] !== '1';
|
||||||
response.apiKeyPermissions[key] = permissions[key] === '1';
|
response.apiKeyPermissions[key] = isSessionKey || permissions[key] === '1';
|
||||||
response.apiKeyPermissions[`${key}_disallowed`] = permissionOff;
|
response.apiKeyPermissions[`${key}_disallowed`] = permissionOff;
|
||||||
response.isRestrictedApiKey = response.isRestrictedApiKey || permissionOff;
|
response.isRestrictedApiKey = response.isRestrictedApiKey || permissionOff;
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue