* [ADD] Allow to set account's owner when creating or copying the account. Related #1264

Signed-off-by: Rubén D <nuxsmin@syspass.org>
This commit is contained in:
Rubén D
2019-02-24 22:15:42 +01:00
parent fd8d4886b4
commit 4e26b3918e
4 changed files with 20 additions and 7 deletions

View File

@@ -820,10 +820,7 @@ final class AccountController extends ControllerBase implements CrudControllerIn
$form = new AccountForm($this->dic);
$form->validate(Acl::ACCOUNT_CREATE);
$itemData = $form->getItemData();
$itemData->userId = $this->userData->getId();
$accountId = $this->accountService->create($itemData);
$accountId = $this->accountService->create($form->getItemData());
$this->addCustomFieldsForItem(Acl::ACCOUNT, $accountId, $this->request);

View File

@@ -383,6 +383,7 @@ final class AccountHelper extends HelperBase
$this->view->assign('otherUserGroupsView', $selectUserGroups->getItemsFromModelSelected($accountPermission->getUserGroupsView()));
$this->view->assign('otherUserGroupsEdit', $selectUserGroups->getItemsFromModelSelected($accountPermission->getUserGroupsEdit()));
$this->view->assign('users', $selectUsers->getItemsFromModel());
$this->view->assign('userGroups', $selectUserGroups->getItemsFromModel());
$this->view->assign('tags', $selectTags->getItemsFromModel());

View File

@@ -157,7 +157,9 @@
<?php endif; ?>
<?php endif; ?>
<?php if ($_getvar('editAction')
<?php if (($_getvar('editAction')
|| $_getvar('createAction')
|| $_getvar('copyAction'))
&& ($_getvar('ctx_userIsAdminApp')
|| $_getvar('ctx_userIsAdminAcc')
|| $_getvar('ctx_userId') === $accountData->getUserId())): ?>

View File

@@ -177,10 +177,23 @@ final class AccountService extends Service implements AccountServiceInterface
*/
public function create(AccountRequest $accountRequest)
{
$userData = $this->context->getUserData();
$accountRequest->changePermissions = AccountAclService::getShowPermission(
$this->context->getUserData(),
$userData,
$this->context->getUserProfile());
$accountRequest->userGroupId = $accountRequest->userGroupId ?: $this->context->getUserData()->getUserGroupId();
if (empty($accountRequest->userGroupId)
|| !$accountRequest->changePermissions
) {
$accountRequest->userGroupId = $userData->getUserGroupId();
}
if (empty($accountRequest->userId)
|| !$accountRequest->changePermissions
) {
$accountRequest->userId = $userData->getId();
}
if (empty($accountRequest->key)) {
$pass = $this->getPasswordEncrypted($accountRequest->pass);