Take community id's instead of hosts
This commit is contained in:
parent
d6cf778053
commit
69a51a7d7f
1 changed files with 6 additions and 8 deletions
|
@ -29,8 +29,9 @@ pub const InviteRequest = struct {
|
||||||
lifespan: ?DateTime.Duration = null,
|
lifespan: ?DateTime.Duration = null,
|
||||||
max_uses: ?u16 = null,
|
max_uses: ?u16 = null,
|
||||||
|
|
||||||
kind: Kind = .user, // must be user unless the creator is an admin
|
// admin only options
|
||||||
to_community: ?[]const u8 = null, // only valid on admin community
|
kind: Kind = .user,
|
||||||
|
to_community: ?Uuid = null,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub const LoginResponse = services.auth.LoginResult;
|
pub const LoginResponse = services.auth.LoginResult;
|
||||||
|
@ -264,14 +265,11 @@ fn ApiConn(comptime DbConn: type) type {
|
||||||
// Only logged in users can make invites
|
// Only logged in users can make invites
|
||||||
const user_id = self.user_id orelse return error.TokenRequired;
|
const user_id = self.user_id orelse return error.TokenRequired;
|
||||||
|
|
||||||
const community_id = if (options.to_community) |host| blk: {
|
const community_id = if (options.to_community) |id| blk: {
|
||||||
// You can only specify a different community if you're on the admin domain
|
// Only admins can send invites for other communities
|
||||||
if (self.community.kind != .admin) return error.WrongCommunity;
|
|
||||||
|
|
||||||
// Only admins can invite on the admin domain
|
|
||||||
if (!self.isAdmin()) return error.PermissionDenied;
|
if (!self.isAdmin()) return error.PermissionDenied;
|
||||||
|
|
||||||
break :blk (try services.communities.getByHost(self.db, host, self.arena.allocator())).id;
|
break :blk id;
|
||||||
} else self.community.id;
|
} else self.community.id;
|
||||||
|
|
||||||
// Users can only make user invites
|
// Users can only make user invites
|
||||||
|
|
Loading…
Reference in a new issue