mirror of
https://github.com/casdoor/casdoor.git
synced 2025-05-23 02:35:49 +08:00
Add provider to file API.
This commit is contained in:
parent
518c3f9f69
commit
8674b4853a
@ -64,23 +64,41 @@ func (c *ApiController) AddResource() {
|
||||
c.ServeJSON()
|
||||
}
|
||||
|
||||
func (c *ApiController) DeleteResource() {
|
||||
userId, ok := c.RequireSignedIn()
|
||||
if !ok {
|
||||
return
|
||||
func (c *ApiController) GetProviderParam() (*object.Provider, *object.User, bool) {
|
||||
providerName := c.Input().Get("provider")
|
||||
if providerName != "" {
|
||||
provider := object.GetProvider(util.GetId(providerName))
|
||||
if provider == nil {
|
||||
c.ResponseError(fmt.Sprintf("The provider: %s is not found", providerName))
|
||||
return nil, nil, false
|
||||
}
|
||||
return provider, nil, true
|
||||
}
|
||||
|
||||
var resource object.Resource
|
||||
err := json.Unmarshal(c.Ctx.Input.RequestBody, &resource)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
userId, ok := c.RequireSignedIn()
|
||||
if !ok {
|
||||
return nil, nil, false
|
||||
}
|
||||
|
||||
user := object.GetUser(userId)
|
||||
application := object.GetApplicationByUser(user)
|
||||
provider := application.GetStorageProvider()
|
||||
if provider == nil {
|
||||
c.ResponseError("No storage provider is found")
|
||||
c.ResponseError(fmt.Sprintf("No storage provider is found for application: %s", application.Name))
|
||||
return nil, nil, false
|
||||
}
|
||||
return provider, user, true
|
||||
}
|
||||
|
||||
func (c *ApiController) DeleteResource() {
|
||||
var resource object.Resource
|
||||
err := json.Unmarshal(c.Ctx.Input.RequestBody, &resource)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
provider, _, ok := c.GetProviderParam()
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
@ -95,11 +113,6 @@ func (c *ApiController) DeleteResource() {
|
||||
}
|
||||
|
||||
func (c *ApiController) UploadResource() {
|
||||
userId, ok := c.RequireSignedIn()
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
owner := c.Input().Get("owner")
|
||||
tag := c.Input().Get("tag")
|
||||
parent := c.Input().Get("parent")
|
||||
@ -119,11 +132,8 @@ func (c *ApiController) UploadResource() {
|
||||
return
|
||||
}
|
||||
|
||||
user := object.GetUser(userId)
|
||||
application := object.GetApplicationByUser(user)
|
||||
provider := application.GetStorageProvider()
|
||||
if provider == nil {
|
||||
c.ResponseError("No storage provider is found")
|
||||
provider, user, ok := c.GetProviderParam()
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
@ -147,6 +157,7 @@ func (c *ApiController) UploadResource() {
|
||||
Owner: owner,
|
||||
Name: filename,
|
||||
CreatedTime: util.GetCurrentTime(),
|
||||
Provider: provider.Name,
|
||||
Tag: tag,
|
||||
Parent: parent,
|
||||
FileType: fileType,
|
||||
|
@ -26,6 +26,7 @@ type Resource struct {
|
||||
Name string `xorm:"varchar(100) notnull pk" json:"name"`
|
||||
CreatedTime string `xorm:"varchar(100)" json:"createdTime"`
|
||||
|
||||
Provider string `xorm:"varchar(100)" json:"provider"`
|
||||
Tag string `xorm:"varchar(100)" json:"tag"`
|
||||
Parent string `xorm:"varchar(100)" json:"parent"`
|
||||
FileType string `xorm:"varchar(100)" json:"fileType"`
|
||||
|
@ -89,20 +89,27 @@ class ResourceListPage extends React.Component {
|
||||
|
||||
renderTable(resources) {
|
||||
const columns = [
|
||||
{
|
||||
title: i18next.t("general:Provider"),
|
||||
dataIndex: 'provider',
|
||||
key: 'provider',
|
||||
width: '150px',
|
||||
fixed: 'left',
|
||||
sorter: (a, b) => a.provider.localeCompare(b.provider),
|
||||
render: (text, record, index) => {
|
||||
return (
|
||||
<Link to={`/providers/${text}`}>
|
||||
{text}
|
||||
</Link>
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
title: i18next.t("general:Name"),
|
||||
dataIndex: 'name',
|
||||
key: 'name',
|
||||
width: '150px',
|
||||
fixed: 'left',
|
||||
sorter: (a, b) => a.name.localeCompare(b.name),
|
||||
// render: (text, record, index) => {
|
||||
// return (
|
||||
// <Link to={`/resources/${text}`}>
|
||||
// {text}
|
||||
// </Link>
|
||||
// )
|
||||
// }
|
||||
},
|
||||
{
|
||||
title: i18next.t("general:Created time"),
|
||||
|
@ -46,19 +46,19 @@ export function addResource(resource) {
|
||||
}).then(res => res.json());
|
||||
}
|
||||
|
||||
export function deleteResource(resource) {
|
||||
export function deleteResource(resource, provider="") {
|
||||
let newResource = Setting.deepCopy(resource);
|
||||
return fetch(`${Setting.ServerUrl}/api/delete-resource`, {
|
||||
return fetch(`${Setting.ServerUrl}/api/delete-resource?provider=${provider}`, {
|
||||
method: 'POST',
|
||||
credentials: 'include',
|
||||
body: JSON.stringify(newResource),
|
||||
}).then(res => res.json());
|
||||
}
|
||||
|
||||
export function uploadResource(owner, tag, parent, fullFilePath, file) {
|
||||
export function uploadResource(owner, tag, parent, fullFilePath, file, provider="") {
|
||||
let formData = new FormData();
|
||||
formData.append("file", file);
|
||||
return fetch(`${Setting.ServerUrl}/api/upload-resource?owner=${owner}&tag=${tag}&parent=${parent}&fullFilePath=${encodeURIComponent(fullFilePath)}`, {
|
||||
return fetch(`${Setting.ServerUrl}/api/upload-resource?owner=${owner}&tag=${tag}&parent=${parent}&fullFilePath=${encodeURIComponent(fullFilePath)}&provider=${provider}`, {
|
||||
body: formData,
|
||||
method: 'POST',
|
||||
credentials: 'include',
|
||||
|
Loading…
x
Reference in New Issue
Block a user