mirror of
https://github.com/matrix-construct/construct
synced 2024-10-06 23:59:03 +02:00
ircd:Ⓜ️ Push user creation out to module.
This commit is contained in:
parent
f11be8a0d8
commit
f0b5656fda
4 changed files with 55 additions and 18 deletions
23
ircd/m/m.cc
23
ircd/m/m.cc
|
@ -744,27 +744,14 @@ ircd::m::user
|
||||||
ircd::m::create(const id::user &user_id,
|
ircd::m::create(const id::user &user_id,
|
||||||
const json::members &contents)
|
const json::members &contents)
|
||||||
{
|
{
|
||||||
const m::user user
|
using prototype = user (const id::user &, const json::members &);
|
||||||
|
|
||||||
|
static import<prototype> function
|
||||||
{
|
{
|
||||||
user_id
|
"client_user", "user_create"
|
||||||
};
|
};
|
||||||
|
|
||||||
const m::room::id::buf user_room_id
|
return function(user_id, contents);
|
||||||
{
|
|
||||||
user.room_id()
|
|
||||||
};
|
|
||||||
|
|
||||||
//TODO: ABA
|
|
||||||
//TODO: TXN
|
|
||||||
m::room user_room
|
|
||||||
{
|
|
||||||
create(user_room_id, m::me.user_id, "user")
|
|
||||||
};
|
|
||||||
|
|
||||||
//TODO: ABA
|
|
||||||
//TODO: TXN
|
|
||||||
send(user.users, m::me.user_id, "ircd.user", user.user_id, contents);
|
|
||||||
return user;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
|
|
@ -171,6 +171,7 @@ client_client_user_la_SOURCES = \
|
||||||
client/user/filter.cc \
|
client/user/filter.cc \
|
||||||
client/user/account_data.cc \
|
client/user/account_data.cc \
|
||||||
client/user/rooms.cc \
|
client/user/rooms.cc \
|
||||||
|
client/user/create.cc \
|
||||||
client/user/user.cc \
|
client/user/user.cc \
|
||||||
###
|
###
|
||||||
|
|
||||||
|
|
40
modules/client/user/create.cc
Normal file
40
modules/client/user/create.cc
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
// Matrix Construct
|
||||||
|
//
|
||||||
|
// Copyright (C) Matrix Construct Developers, Authors & Contributors
|
||||||
|
// Copyright (C) 2016-2018 Jason Volk <jason@zemos.net>
|
||||||
|
//
|
||||||
|
// Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
// purpose with or without fee is hereby granted, provided that the above
|
||||||
|
// copyright notice and this permission notice is present in all copies. The
|
||||||
|
// full license for this software is available in the LICENSE file.
|
||||||
|
|
||||||
|
#include "user.h"
|
||||||
|
|
||||||
|
using namespace ircd;
|
||||||
|
|
||||||
|
extern "C" m::user
|
||||||
|
user_create(const m::user::id &user_id,
|
||||||
|
const json::members &contents)
|
||||||
|
{
|
||||||
|
const m::user user
|
||||||
|
{
|
||||||
|
user_id
|
||||||
|
};
|
||||||
|
|
||||||
|
const m::room::id::buf user_room_id
|
||||||
|
{
|
||||||
|
user.room_id()
|
||||||
|
};
|
||||||
|
|
||||||
|
//TODO: ABA
|
||||||
|
//TODO: TXN
|
||||||
|
m::room user_room
|
||||||
|
{
|
||||||
|
m::create(user_room_id, m::me.user_id, "user")
|
||||||
|
};
|
||||||
|
|
||||||
|
//TODO: ABA
|
||||||
|
//TODO: TXN
|
||||||
|
send(user.users, m::me.user_id, "ircd.user", user.user_id, contents);
|
||||||
|
return user;
|
||||||
|
}
|
|
@ -54,3 +54,12 @@ ircd::resource::response
|
||||||
put__rooms(ircd::client &client,
|
put__rooms(ircd::client &client,
|
||||||
const ircd::resource::request &request,
|
const ircd::resource::request &request,
|
||||||
const ircd::m::user::id &user_id);
|
const ircd::m::user::id &user_id);
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// create.cc
|
||||||
|
//
|
||||||
|
|
||||||
|
extern "C" ircd::m::user
|
||||||
|
user_create(const ircd::m::user::id &,
|
||||||
|
const ircd::json::members &);
|
||||||
|
|
Loading…
Reference in a new issue