feature (share): WIP

This commit is contained in:
Mickael KERJEAN 2018-10-02 17:58:03 +10:00
parent c649dc4854
commit 86b1acd93c
3 changed files with 45 additions and 51 deletions

View file

@ -135,6 +135,12 @@ export class ShareComponent extends React.Component {
}
this.setState({existings: links});
return Share.upsert(link)
.then(() => {
if(this.state.url !== null && this.state.url !== this.state.id){
this.onDeleteLink(this.state.id)
}
return Promise.resolve()
})
.then(() => this.setState(this.resetState()))
.catch((err) => {
notify.send(err, "error");

View file

@ -32,7 +32,6 @@ func TestShareMultipleUpsert(t *testing.T) {
err := model.ShareUpsert(&shareObj);
assert.NoError(t, err)
shareObj.CanManageOwn = false
err = model.ShareUpsert(&shareObj);
assert.NoError(t, err)
@ -40,18 +39,16 @@ func TestShareMultipleUpsert(t *testing.T) {
assert.NoError(t, err)
}
// func TestShareUpsertIsProperlyInserted(t *testing.T) {
// err := model.ShareUpsert(&shareObj);
// assert.NoError(t, err)
func TestShareUpsertIsProperlyInserted(t *testing.T) {
err := model.ShareUpsert(&shareObj);
assert.NoError(t, err)
// var obj model.Share
// err = model.ShareGet(&obj)
// assert.NoError(t, err)
// assert.NotNil(t, obj.Password)
// // TODO
// //assert.NotNil(t, obj.Password)
// }
var obj model.Share
obj.Id = "foo"
err = model.ShareGet(&obj)
assert.NoError(t, err)
assert.NotNil(t, obj.Password)
}
//////////////////////////////////////////////
//// get
@ -71,29 +68,26 @@ func TestShareGetExisting(t *testing.T) {
assert.NoError(t, err)
}
// func TestShareGetExistingMakeSureDataIsOk(t *testing.T) {
// err := model.ShareUpsert(&shareObj);
// assert.NoError(t, err, "Upsert issue")
func TestShareGetExistingMakeSureDataIsOk(t *testing.T) {
err := model.ShareUpsert(&shareObj);
assert.NoError(t, err, "Upsert issue")
// var obj model.Share
// obj.Id = shareObj.Id
// obj.Backend = shareObj.Backend
// err = model.ShareGet(&obj);
// assert.NoError(t, err)
// assert.Equal(t, "foo", obj.Id)
// assert.Equal(t, "/var/www/", obj.Path)
// assert.Equal(t, true, obj.CanManageOwn)
// assert.Equal(t, true, obj.CanShare)
// assert.Equal(t, true, obj.CanRead)
// assert.Equal(t, false, obj.CanWrite)
// assert.Equal(t, false, obj.CanUpload)
// assert.Nil(t, obj.Backend)
// assert.NotNil(t, obj.Expire)
// assert.Equal(t, shareObj.Expire, obj.Expire)
// assert.NotNil(t, obj.Password)
// assert.NotEqual(t, shareObj.Password, obj.Password)
// }
var obj model.Share
obj.Id = "foo"
obj.Backend = shareObj.Backend
err = model.ShareGet(&obj);
assert.NoError(t, err)
assert.Equal(t, "foo", obj.Id)
assert.Equal(t, "/var/www/", obj.Path)
assert.Equal(t, true, obj.CanManageOwn)
assert.Equal(t, true, obj.CanShare)
assert.Equal(t, true, obj.CanRead)
assert.Equal(t, false, obj.CanWrite)
assert.Equal(t, false, obj.CanUpload)
assert.Equal(t, "foo", obj.Backend)
assert.Equal(t, shareObj.Expire, obj.Expire)
assert.Equal(t, "{{PASSWORD}}", *obj.Password)
}
//////////////////////////////////////////////
//// LIST

View file

@ -81,11 +81,9 @@ func ShareList(p *Share) ([]Share, error) {
sharedFiles := []Share{}
for rows.Next() {
var a Share
a.Id = "test"
var params []byte
rows.Scan(&a.Id, &a.Path, &params)
json.Unmarshal(params, &a)
// TODO password
sharedFiles = append(sharedFiles, a)
}
rows.Close()
@ -121,11 +119,16 @@ func shareGet(p *Share) error {
}
func ShareUpsert(p *Share) error {
var copy Share
if p.Password != nil && *p.Password == PASSWORD_DUMMY {
copy = *p
ShareGet(&copy)
p.Password = copy.Password
if p.Password != nil {
if *p.Password == PASSWORD_DUMMY {
var copy Share
copy.Id = p.Id
shareGet(&copy);
p.Password = copy.Password
} else {
hashedPassword, _ := bcrypt.GenerateFromPassword([]byte(*p.Password), bcrypt.DefaultCost)
p.Password = NewString(string(hashedPassword))
}
}
stmt, err := DB.Prepare("INSERT INTO Location(backend, path) VALUES($1, $2)")
@ -158,16 +161,7 @@ func ShareUpsert(p *Share) error {
CanWrite bool `json:"can_write"`
CanUpload bool `json:"can_upload"`
}{
Password: func(password *string) *string{
if password == nil {
return nil
}
if *password == PASSWORD_DUMMY {
return copy.Password
}
hashedPassword, _ := bcrypt.GenerateFromPassword([]byte(*password), bcrypt.DefaultCost)
return NewString(string(hashedPassword))
}(p.Password),
Password: p.Password,
Users: p.Users,
Expire: p.Expire,
Url: p.Url,