mirror of
https://github.com/HeyPuter/puter.git
synced 2025-02-03 07:48:46 +08:00
dev: add /acl/set-user-user
This commit is contained in:
parent
70d8e837af
commit
c7419d18df
@ -100,6 +100,46 @@ class ACLService extends BaseService {
|
|||||||
res.json({ permissions });
|
res.json({ permissions });
|
||||||
}
|
}
|
||||||
}).attach(r_acl);
|
}).attach(r_acl);
|
||||||
|
|
||||||
|
Endpoint({
|
||||||
|
route: '/set-user-user',
|
||||||
|
methods: ['POST'],
|
||||||
|
mw: [configurable_auth()],
|
||||||
|
handler: async (req, res) => {
|
||||||
|
// Only user actor is allowed
|
||||||
|
if ( ! (req.actor.type instanceof UserActorType) ) {
|
||||||
|
return res.status(403).json({
|
||||||
|
error: 'forbidden',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const holder_user = await get_user({
|
||||||
|
username: req.body.user,
|
||||||
|
});
|
||||||
|
|
||||||
|
if ( ! holder_user ) {
|
||||||
|
throw APIError.create('user_does_not_exist', null, {
|
||||||
|
username: req.body.user,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const issuer = req.actor;
|
||||||
|
const holder = new Actor({
|
||||||
|
type: new UserActorType({
|
||||||
|
user: holder_user,
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
|
||||||
|
const node = await (new FSNodeParam('path')).consolidate({
|
||||||
|
req,
|
||||||
|
getParam: () => req.body.resource,
|
||||||
|
});
|
||||||
|
|
||||||
|
await this.set_user_user(issuer, holder, node, req.body.mode, req.body.options ?? {});
|
||||||
|
|
||||||
|
res.json({});
|
||||||
|
}
|
||||||
|
}).attach(r_acl);
|
||||||
}
|
}
|
||||||
|
|
||||||
async set_user_user (issuer, holder, resource, mode, options = {}) {
|
async set_user_user (issuer, holder, resource, mode, options = {}) {
|
||||||
|
Loading…
Reference in New Issue
Block a user