// don't check for secret key because we may be doing a removal
- check_existing_key(op_state);
-
+ if (check_existing_key(op_state)) {
+ op_state.set_access_key_exist();
+ }
return 0;
}
return ret;
}
+ if (op_state.get_access_key_exist()) {
+ set_err_msg(err_msg, "cannot create existing key");
+ return -ERR_KEY_EXIST;
+ }
+
if (key_type == KEY_TYPE_S3 && op_state.get_access_key().empty()) {
op_state.set_gen_access();
}
std::string id; // access key
std::string key; // secret key
int32_t key_type{-1};
+ bool access_key_exist = false;
std::set<string> mfa_ids;
type_specified = true;
}
+ void set_access_key_exist() {
+ access_key_exist = true;
+ }
+
void set_suspension(__u8 is_suspended) {
suspended = is_suspended;
suspension_op = true;
void set_generate_subuser(bool flag) { gen_subuser = flag; }
__u8 get_suspension_status() { return suspended; }
int32_t get_key_type() {return key_type; }
+ bool get_access_key_exist() {return access_key_exist; }
uint32_t get_subuser_perm() { return perm_mask; }
int32_t get_max_buckets() { return max_buckets; }
uint32_t get_op_mask() { return op_mask; }