mirror of
https://github.com/nextcloud/passman.git
synced 2024-09-20 14:56:21 +08:00
Updating almost works
This commit is contained in:
parent
8a218344c5
commit
de27612a58
|
@ -102,10 +102,13 @@ class CredentialController extends ApiController {
|
|||
$description, $email, $expire_time, $favicon, $files, $guid,
|
||||
$hidden, $label, $otp, $password, $renew_interval,
|
||||
$tags, $url, $username, $vault_id, $revision_created, $shared_key, $acl) {
|
||||
|
||||
|
||||
$storedCredential = $this->credentialService->getCredentialById($credential_id, $this->userId);
|
||||
|
||||
$credential = array(
|
||||
'credential_id' => $credential_id,
|
||||
'guid' => $guid,
|
||||
'user_id' => $this->userId,
|
||||
'label' => $label,
|
||||
'description' => $description,
|
||||
'created' => $created,
|
||||
|
@ -124,17 +127,18 @@ class CredentialController extends ApiController {
|
|||
'delete_time' => $delete_time,
|
||||
'hidden' => $hidden,
|
||||
'otp' => $otp,
|
||||
'shared_key' => (!empty($shared_key)) ? $shared_key : '',
|
||||
'shared_key' => ($shared_key === null) ? null : $storedCredential->getSharedKey(),
|
||||
);
|
||||
|
||||
$storedCredential = $this->credentialService->getCredentialById($credential_id, $this->userId);
|
||||
|
||||
|
||||
if ($storedCredential->getUserId() !== $this->userId){
|
||||
$acl = $this->sharingService->getCredentialAclForUser($this->userId, $storedCredential->getGuid());
|
||||
if (!$acl->hasPermission(SharingACL::WRITE)){
|
||||
return new DataResponse(['msg' => 'Not authorized'], Http::STATUS_UNAUTHORIZED);
|
||||
}
|
||||
}
|
||||
|
||||
//@TODO Add activities for non owned items
|
||||
$link = ''; // @TODO create direct link to credential
|
||||
if ($revision_created) {
|
||||
$this->activityService->add(
|
||||
|
@ -163,7 +167,7 @@ class CredentialController extends ApiController {
|
|||
$link, $this->userId, Activity::TYPE_ITEM_ACTION);
|
||||
}
|
||||
|
||||
$this->credentialRevisionService->createRevision($storedCredential, $this->userId, $credential_id);
|
||||
$this->credentialRevisionService->createRevision($storedCredential, $storedCredential->getUserId(), $credential_id, $this->userId);
|
||||
$credential = $this->credentialService->updateCredential($credential);
|
||||
|
||||
return new JSONResponse($credential);
|
||||
|
|
|
@ -89,7 +89,7 @@ angular.module('views/partials/forms/share_credential/basics.html', []).run(['$t
|
|||
angular.module('views/partials/forms/share_credential/link_sharing.html', []).run(['$templateCache', function($templateCache) {
|
||||
'use strict';
|
||||
$templateCache.put('views/partials/forms/share_credential/link_sharing.html',
|
||||
'<div class="row"><div class="col-xs-12 col-md-6"><input type="checkbox" ng-model="share_settings.linkSharing.enabled"> Enable link sharing.<br><input type="text" ng-model="share_link" select-on-click ng-if="share_settings.linkSharing.enabled"><div>Expire settings:<select ng-model="share_settings.linkSharing.settings.type"><option value="null">Does not expire</option><option value="view_amount">Expire after a certain amount of views</option><option value="date">Expire after a date</option></select></div><div ng-show="share_settings.linkSharing.settings.type == \'date\'">Share until date <span datetime-picker ng-model="share_settings.linkSharing.settings.value" class="link" future-only ng-show="!share_settings.linkSharing.settings.value" close-on-select="false">No expire date set</span></div><div ng-show="share_settings.linkSharing.settings.type == \'view_amount\'">Share until views <input type="number" ng-model="share_settings.linkSharing.settings.value"></div><div><table><tr><td><input type="checkbox" ng-click="setPermission(share_settings.linkSharing.settings.acl, default_permissions.permissions.FILES)" ng-checked="hasPermission(share_settings.linkSharing.settings.acl, default_permissions.permissions.FILES)"></td><td>Show files</td></tr></table></div></div></div>');
|
||||
'<div class="row"><div class="col-xs-12 col-md-6"><input type="checkbox" ng-model="share_settings.linkSharing.enabled"> Enable link sharing.<br><input type="text" ng-model="share_link" select-on-click ng-if="share_settings.linkSharing.enabled"><div ng-if="share_settings.linkSharing.enabled">Expire settings:<select ng-model="share_settings.linkSharing.settings.type"><option value="null">Does not expire</option><option value="view_amount">Expire after a certain amount of views</option><option value="date">Expire after a date</option></select></div><div ng-show="share_settings.linkSharing.settings.type == \'date\'">Share until date <span datetime-picker ng-model="share_settings.linkSharing.settings.value" class="link" future-only ng-show="!share_settings.linkSharing.settings.value" close-on-select="false">No expire date set</span></div><div ng-show="share_settings.linkSharing.settings.type == \'view_amount\'">Share until views <input type="number" ng-model="share_settings.linkSharing.settings.value"></div><div ng-if="share_settings.linkSharing.enabled"><table><tr><td><input type="checkbox" ng-click="setPermission(share_settings.linkSharing.settings.acl, default_permissions.permissions.FILES)" ng-checked="hasPermission(share_settings.linkSharing.settings.acl, default_permissions.permissions.FILES)"></td><td>Show files</td></tr></table></div></div></div>');
|
||||
}]);
|
||||
|
||||
angular.module('views/partials/password-meter.html', []).run(['$templateCache', function($templateCache) {
|
||||
|
|
|
@ -38,12 +38,13 @@ class CredentialRevisionMapper extends Mapper {
|
|||
return $this->findEntities($sql, $params);
|
||||
}
|
||||
|
||||
public function create($credential, $userId, $credential_id) {
|
||||
public function create($credential, $userId, $credential_id, $edited_by) {
|
||||
$revision = new CredentialRevision();
|
||||
$revision->setGuid($this->utils->GUID());
|
||||
$revision->setUserId($userId);
|
||||
$revision->setCreated($this->utils->getTime());
|
||||
$revision->setCredentialId($credential_id);
|
||||
$revision->setEditedBy($edited_by);
|
||||
$revision->setCredentialData(base64_encode(serialize($credential)));
|
||||
return $this->insert($revision);
|
||||
}
|
||||
|
|
|
@ -25,8 +25,8 @@ class CredentialRevisionService {
|
|||
$this->credentialRevisionMapper = $credentialRevisionMapper;
|
||||
}
|
||||
|
||||
public function createRevision($credential, $userId, $credential_id) {
|
||||
return $this->credentialRevisionMapper->create($credential, $userId, $credential_id);
|
||||
public function createRevision($credential, $userId, $credential_id, $edited_by) {
|
||||
return $this->credentialRevisionMapper->create($credential, $userId, $credential_id, $edited_by);
|
||||
}
|
||||
|
||||
public function getRevisions($credential_id, $user_id = null){
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
Enable link sharing.<br/>
|
||||
<input type="text" ng-model="share_link" select-on-click
|
||||
ng-if="share_settings.linkSharing.enabled">
|
||||
<div>
|
||||
<div ng-if="share_settings.linkSharing.enabled">
|
||||
Expire settings:
|
||||
<select ng-model="share_settings.linkSharing.settings.type">
|
||||
<option value="null">Does not expire</option>
|
||||
|
@ -31,7 +31,7 @@
|
|||
<input type="number"
|
||||
ng-model="share_settings.linkSharing.settings.value">
|
||||
</div>
|
||||
<div>
|
||||
<div ng-if="share_settings.linkSharing.enabled">
|
||||
<table>
|
||||
<tr>
|
||||
<td><input type="checkbox"
|
||||
|
|
Loading…
Reference in a new issue