mirror of
https://github.com/goharbor/harbor.git
synced 2024-10-04 16:27:34 +02:00
Merge pull request #146 from wy65701436/master
add post return, add the URI to header location.
This commit is contained in:
commit
00b33d6b4d
@ -86,3 +86,11 @@ func (b *BaseAPI) ValidateUser() int {
|
||||
}
|
||||
return userID
|
||||
}
|
||||
|
||||
// Redirect does redirection to resource URI with http header status code.
|
||||
func (b *BaseAPI) Redirect(statusCode int, resouceID string) {
|
||||
requestURI := b.Ctx.Request.RequestURI
|
||||
resoucreURI := requestURI + "/" + resouceID
|
||||
|
||||
b.Ctx.Redirect(statusCode, resoucreURI)
|
||||
}
|
||||
|
@ -87,11 +87,13 @@ func (p *ProjectAPI) Post() {
|
||||
return
|
||||
}
|
||||
project := models.Project{OwnerID: p.userID, Name: projectName, CreationTime: time.Now(), Public: public}
|
||||
err = dao.AddProject(project)
|
||||
projectID, err := dao.AddProject(project)
|
||||
if err != nil {
|
||||
log.Errorf("Failed to add project, error: %v", err)
|
||||
p.RenderError(http.StatusInternalServerError, "Failed to add project")
|
||||
}
|
||||
|
||||
p.Redirect(http.StatusCreated, strconv.FormatInt(projectID, 10))
|
||||
}
|
||||
|
||||
// Head ...
|
||||
|
@ -158,13 +158,14 @@ func (ua *UserAPI) Post() {
|
||||
user := models.User{}
|
||||
ua.DecodeJSONReq(&user)
|
||||
|
||||
_, err := dao.Register(user)
|
||||
userID, err := dao.Register(user)
|
||||
if err != nil {
|
||||
log.Errorf("Error occurred in Register: %v", err)
|
||||
ua.RenderError(http.StatusInternalServerError, "Internal error.")
|
||||
return
|
||||
}
|
||||
|
||||
ua.Redirect(http.StatusCreated, strconv.FormatInt(userID, 10))
|
||||
}
|
||||
|
||||
// Delete ...
|
||||
|
@ -372,7 +372,7 @@ func TestAddProject(t *testing.T) {
|
||||
OwnerName: currentUser.Username,
|
||||
}
|
||||
|
||||
err := AddProject(project)
|
||||
_, err := AddProject(project)
|
||||
if err != nil {
|
||||
t.Errorf("Error occurred in AddProject: %v", err)
|
||||
}
|
||||
|
@ -29,41 +29,41 @@ import (
|
||||
//TODO:transaction, return err
|
||||
|
||||
// AddProject adds a project to the database along with project roles information and access log records.
|
||||
func AddProject(project models.Project) error {
|
||||
func AddProject(project models.Project) (int64, error) {
|
||||
|
||||
if isIllegalLength(project.Name, 4, 30) {
|
||||
return errors.New("project name is illegal in length. (greater than 4 or less than 30)")
|
||||
return 0, errors.New("project name is illegal in length. (greater than 4 or less than 30)")
|
||||
}
|
||||
if isContainIllegalChar(project.Name, []string{"~", "-", "$", "\\", "[", "]", "{", "}", "(", ")", "&", "^", "%", "*", "<", ">", "\"", "'", "/", "?", "@"}) {
|
||||
return errors.New("project name contains illegal characters")
|
||||
return 0, errors.New("project name contains illegal characters")
|
||||
}
|
||||
|
||||
o := orm.NewOrm()
|
||||
|
||||
p, err := o.Raw("insert into project (owner_id, name, creation_time, update_time, deleted, public) values (?, ?, ?, ?, ?, ?)").Prepare()
|
||||
if err != nil {
|
||||
return err
|
||||
return 0, err
|
||||
}
|
||||
|
||||
now := time.Now()
|
||||
r, err := p.Exec(project.OwnerID, project.Name, now, now, project.Deleted, project.Public)
|
||||
if err != nil {
|
||||
return err
|
||||
return 0, err
|
||||
}
|
||||
|
||||
projectID, err := r.LastInsertId()
|
||||
if err != nil {
|
||||
return err
|
||||
return 0, err
|
||||
}
|
||||
|
||||
if err = AddProjectMember(projectID, project.OwnerID, models.PROJECTADMIN); err != nil {
|
||||
return err
|
||||
return projectID, err
|
||||
}
|
||||
|
||||
accessLog := models.AccessLog{UserID: project.OwnerID, ProjectID: projectID, RepoName: project.Name + "/", GUID: "N/A", Operation: "create", OpTime: time.Now()}
|
||||
err = AddAccessLog(accessLog)
|
||||
|
||||
return err
|
||||
return projectID, err
|
||||
}
|
||||
|
||||
// IsProjectPublic ...
|
||||
|
@ -57,7 +57,7 @@ jQuery(function(){
|
||||
},
|
||||
complete: function(xhr, status){
|
||||
$("#btnPageSignUp").prop("disabled", false);
|
||||
if(xhr && xhr.status == 200){
|
||||
if(xhr && xhr.status == 201){
|
||||
$("#dlgModal")
|
||||
.dialogModal({
|
||||
"title": isAdmin == "true" ? i18n.getMessage("title_add_user") : i18n.getMessage("title_sign_up"),
|
||||
|
Loading…
Reference in New Issue
Block a user