1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab ft=cpp
4 #include "include/rgw/librgw_admin_user.h"
5 #include "rgw_admin_user.h"
7 #include "common/errno.h"
9 #define dout_context g_ceph_context
10 #define dout_subsys ceph_subsys_rgw
16 extern RGWLibAdmin rgw_lib_admin
;
22 int rgw_admin_create_user(librgw_admin_user_t librgw_admin_user
, const char *uid
,
23 const char *display_name
, const char *access_key
, const char* secret_key
,
24 const char *email
, const char *caps
,
25 const char *access
, bool admin
, bool system
)
27 RGWUserAdminOpState user_op
;
29 user_id
.from_str(uid
);
30 user_op
.set_user_id(user_id
);
31 user_op
.set_display_name(display_name
);
32 user_op
.user_email
= email
;
33 user_op
.user_email_specified
=true;
34 user_op
.set_access_key(access_key
);
35 user_op
.set_secret_key(secret_key
);
36 user_op
.set_caps(caps
);
38 uint32_t perm_mask
= rgw_str_to_perm(access
);
39 user_op
.set_perm(perm_mask
);
41 user_op
.set_admin(admin
);
42 user_op
.set_system(system
);
46 ret
= user
.init(rgw_lib_admin
.get_store(), user_op
);
48 cerr
<< "user.init failed: " << cpp_strerror(-ret
) << std::endl
;
53 ret
= user
.add(user_op
, &err_msg
);
55 cerr
<< "could not create user: " << err_msg
<< std::endl
;
56 if (ret
== -ERR_INVALID_TENANT_NAME
)
65 int rgw_admin_user_info(librgw_admin_user_t librgw_admin_user
, const char *uid
, rgw_user_info
* user_info
)
67 RGWUserAdminOpState user_op
;
69 user_id
.from_str(uid
);
70 user_op
.set_user_id(user_id
);
74 ret
= user
.init(rgw_lib_admin
.get_store(), user_op
);
76 cerr
<< "user.init failed: " << cpp_strerror(-ret
) << std::endl
;
82 ret
= user
.info(info
, &err_msg
);
84 cerr
<< "could not fetch user info: " << err_msg
<< std::endl
;