21 use Symfony\Component\HttpFoundation\Request;
41 $this->user_pk = $user_pk;
44 public function modifyUserDetails($reqBody, $version = ApiVersion::V1)
47 $restHelper = $container->get(
'helper.restHelper');
48 $userEditObj = $restHelper->getPlugin(
'user_edit');
50 $sessionOwnerUser_pk = $restHelper->getUserId();
51 $SessionUserRec = $userEditObj->GetUserRec($sessionOwnerUser_pk);
52 $SessionIsAdmin = $userEditObj->IsSessionAdmin($SessionUserRec);
54 $symReq = $this->createSymRequest($reqBody, $version);
55 $isSelfEdit = intval($sessionOwnerUser_pk) === intval($this->user_pk);
56 if (!$SessionIsAdmin && !$isSelfEdit) {
57 $returnVal =
new Info(403,
"The session owner is not an admin!", InfoType::INFO);
59 $userRec = $userEditObj->CreateUserRec($symReq);
60 $ErrMsgs = $userEditObj->UpdateUser($userRec, $SessionIsAdmin);
62 if ($ErrMsgs ==
null) {
63 $returnVal =
new Info(200,
"User updated succesfully!", InfoType::INFO);
65 $returnVal =
new Info(400, $ErrMsgs, InfoType::INFO);
75 public function createSymRequest($userDetails, $version = ApiVersion::V1)
78 $restHelper = $container->get(
'helper.restHelper');
84 $userDao = $restHelper->getUserDao();
85 $user = $userDao->getUserByPk($this->user_pk);
87 $symfonyRequest =
new Request();
88 $symfonyRequest->request->set(
'user_pk', $userDetails[
'id'] ?? $this->user_pk);
89 $symfonyRequest->request->set(
'user_name', $userDetails[
'name'] ?? $user[
'user_name']);
90 $symfonyRequest->request->set(
'root_folder_fk', $userDetails[
'rootFolderId'] ?? $user[
'root_folder_fk']);
91 $symfonyRequest->request->set(
'default_group_fk', $userDetails[
'defaultGroup'] ?? $user[
'group_fk']);
92 $symfonyRequest->request->set(
'public', $userDetails[
'defaultVisibility'] ?? $user[
'upload_visibility']);
93 $symfonyRequest->request->set(
'default_folder_fk', $userDetails[
'defaultFolderId'] ?? $user[
'default_folder_fk']);
94 $symfonyRequest->request->set(
'user_desc', $userDetails[
'description'] ?? $user[
'user_desc']);
95 $symfonyRequest->request->set(
'_pass1', $userDetails[$version == ApiVersion::V2 ?
'userPass' :
'user_pass'] ??
null);
96 $symfonyRequest->request->set(
'_pass2', $userDetails[$version == ApiVersion::V2 ?
'userPass' :
'user_pass'] ??
null);
97 $symfonyRequest->request->set(
'_blank_pass', $userDetails[
'_blank_pass'] ??
"");
98 $symfonyRequest->request->set(
'user_status', $userDetails[
'user_status'] ?? $user[
'user_status']);
99 $symfonyRequest->request->set(
'user_email', $userDetails[
'email'] ?? $user[
'user_email']);
100 $symfonyRequest->request->set(
'email_notify', isset($userDetails[
'emailNotification']) && $userDetails[
'emailNotification'] ?
"y" : $user[
'email_notify']);
101 $symfonyRequest->request->set(
'default_bucketpool_fk', $userDetails[
'defaultBucketpool'] ?? $user[
'default_bucketpool_fk']);
103 if (isset($userDetails[
'accessLevel'])) {
105 $symfonyRequest->request->set(
'user_perm', $user_perm);
107 $symfonyRequest->request->set(
'user_perm', $user[
'user_perm']);
110 $agentsExists = array();
112 $agentsTempVal = explode(
',', $user[
'user_agent_list']);
113 foreach ($agentsTempVal as $agent) {
114 $agentsExists[
'Check_' . $agent] = 1;
116 $newAgents = array();
117 if (isset($userDetails[
'agents'])) {
118 if (is_string($userDetails[
'agents'])) {
119 $userDetails[
'agents'] = json_decode($userDetails[
'agents'],
true);
121 if (isset($userDetails[
'agents'][
'mime'])) {
122 $newAgents[
'Check_agent_mimetype'] = $userDetails[
'agents'][
'mime'] ? 1 : 0;
124 if (isset($userDetails[
'agents'][
'monk'])) {
125 $newAgents[
'Check_agent_monk'] = $userDetails[
'agents'][
'monk'] ? 1 : 0;
127 if (isset($userDetails[
'agents'][
'ojo'])) {
128 $newAgents[
'Check_agent_ojo'] = $userDetails[
'agents'][
'ojo'] ? 1 : 0;
130 if (isset($userDetails[
'agents'][$version == ApiVersion::V2 ?
'copyrightEmailAuthor' :
'copyright_email_author'])) {
131 $newAgents[
'Check_agent_copyright'] = $userDetails[
'agents'][$version == ApiVersion::V2 ?
'copyrightEmailAuthor' :
'copyright_email_author'] ? 1 : 0;
133 if (isset($userDetails[
'agents'][
'ecc'])) {
134 $newAgents[
'Check_agent_ecc'] = $userDetails[
'agents'][
'ecc'] ? 1 : 0;
136 if (isset($userDetails[
'agents'][
'keyword'])) {
137 $newAgents[
'Check_agent_keyword'] = $userDetails[
'agents'][
'keyword'] ? 1 : 0;
139 if (isset($userDetails[
'agents'][
'nomos'])) {
140 $newAgents[
'Check_agent_nomos'] = $userDetails[
'agents'][
'nomos'] ? 1 : 0;
142 if (isset($userDetails[
'agents'][
'package'])) {
143 $newAgents[
'Check_agent_pkgagent'] = $userDetails[
'agents'][
'package'] ? 1 : 0;
145 if (isset($userDetails[
'agents'][
'reso'])) {
146 $newAgents[
'Check_agent_reso'] = $userDetails[
'agents'][
'reso'] ? 1 : 0;
148 if (isset($userDetails[
'agents'][
'heritage'])) {
149 $newAgents[
'Check_agent_shagent'] = $userDetails[
'agents'][
'heritage'] ? 1 : 0;
153 foreach (array_keys($agentList) as $agentName) {
154 if (!array_key_exists(
"Check_$agentName", $newAgents)) {
155 $newAgents[
"Check_$agentName"] = 0;
159 $agents = array_replace($agentsExists, $newAgents);
161 $symfonyRequest->request->set(
'user_agent_list',
userAgents($agents));
163 return $symfonyRequest;
177 case 'clearing_admin':
178 return Auth::PERM_CADMIN;
Contains the constants and helpers for authentication of user.
Handle user related queries.
__construct($user_pk=null)
getEquivalentValueForPermission($perm)
Different type of infos provided by REST.
Info model to contain general error and return values.
userAgents($agents=null)
Read the UI form and format the user selected agents into a comma separated list.
listAgents()
Search in available plugins and return all agents.