@@ -926,6 +926,8 @@ func HandleGetOrg(resp http.ResponseWriter, request *http.Request) {
926926
927927 // Update active org for user to this one?
928928 // This makes it possible to walk around in the UI for the org
929+
930+ /*
929931 if user.ActiveOrg.Id != org.Id {
930932 log.Printf("[AUDIT] User %s (%s) is admin and has access to org %s. Updating active org to this one.", user.Username, user.Id, org.Id)
931933 user.ActiveOrg.Id = org.Id
@@ -941,6 +943,7 @@ func HandleGetOrg(resp http.ResponseWriter, request *http.Request) {
941943 DeleteCache(ctx, fmt.Sprintf("user_%s", user.Username))
942944 DeleteCache(ctx, fmt.Sprintf("user_%s", user.Id))
943945 }
946+ */
944947
945948 } else {
946949 userFound := false
@@ -6710,6 +6713,7 @@ func diffWorkflows(oldWorkflow Workflow, newWorkflow Workflow, update bool) {
67106713 Id: childWorkflow.ExecutingOrg.Id,
67116714 Name: childWorkflow.ExecutingOrg.Name,
67126715 }
6716+
67136717 SetGitWorkflow(ctx, childWorkflow, &passedOrg)
67146718 }
67156719
@@ -8488,6 +8492,54 @@ func SaveWorkflow(resp http.ResponseWriter, request *http.Request) {
84888492 workflow.SuborgDistribution = []string{}
84898493 }
84908494
8495+ // Encrypt git backup info
8496+ if !workflow.BackupConfig.TokensEncrypted {
8497+ if len(workflow.BackupConfig.UploadRepo) > 0 {
8498+ parsedKey := fmt.Sprintf("%s_upload_repo", workflow.OrgId)
8499+ encryptedToken, err := handleKeyEncryption([]byte(workflow.BackupConfig.UploadRepo), parsedKey)
8500+ if err != nil {
8501+ log.Printf("[ERROR] Failed encrypting token for %s (%s): %s", workflow.Name, workflow.ID, err)
8502+ } else {
8503+ workflow.BackupConfig.UploadRepo = string(encryptedToken)
8504+ workflow.BackupConfig.TokensEncrypted = true
8505+ }
8506+ }
8507+
8508+ if len(workflow.BackupConfig.UploadBranch) > 0 {
8509+ parsedKey := fmt.Sprintf("%s_upload_branch", workflow.OrgId)
8510+ encryptedToken, err := handleKeyEncryption([]byte(workflow.BackupConfig.UploadBranch), parsedKey)
8511+ if err != nil {
8512+ log.Printf("[ERROR] Failed encrypting token for %s (%s): %s", workflow.Name, workflow.ID, err)
8513+ } else {
8514+ workflow.BackupConfig.UploadBranch = string(encryptedToken)
8515+ workflow.BackupConfig.TokensEncrypted = true
8516+ }
8517+ }
8518+
8519+ if len(workflow.BackupConfig.UploadUsername) > 0 {
8520+ parsedKey := fmt.Sprintf("%s_upload_username", workflow.OrgId)
8521+ encryptedToken, err := handleKeyEncryption([]byte(workflow.BackupConfig.UploadUsername), parsedKey)
8522+ if err != nil {
8523+ log.Printf("[ERROR] Failed encrypting token for %s (%s): %s", workflow.Name, workflow.ID, err)
8524+ } else {
8525+ workflow.BackupConfig.UploadUsername = string(encryptedToken)
8526+ workflow.BackupConfig.TokensEncrypted = true
8527+ }
8528+ }
8529+
8530+ if len(workflow.BackupConfig.UploadToken) > 0 {
8531+ parsedKey := fmt.Sprintf("%s_upload_token", workflow.OrgId)
8532+ encryptedToken, err := handleKeyEncryption([]byte(workflow.BackupConfig.UploadToken), parsedKey)
8533+ if err != nil {
8534+ log.Printf("[ERROR] Failed encrypting token for %s (%s): %s", workflow.Name, workflow.ID, err)
8535+ } else {
8536+ workflow.BackupConfig.UploadToken = string(encryptedToken)
8537+ workflow.BackupConfig.TokensEncrypted = true
8538+ }
8539+ }
8540+ }
8541+
8542+
84918543 err = SetWorkflow(ctx, workflow, workflow.ID)
84928544 if err != nil {
84938545 log.Printf("[ERROR] Failed saving workflow to database: %s", err)
@@ -8533,6 +8585,7 @@ func SaveWorkflow(resp http.ResponseWriter, request *http.Request) {
85338585 Name: user.ActiveOrg.Name,
85348586 }
85358587
8588+
85368589 SetWorkflowRevision(ctx, workflow)
85378590 err = SetGitWorkflow(ctx, workflow, org)
85388591 if err != nil {
@@ -9841,7 +9894,9 @@ func GetSpecificWorkflow(resp http.ResponseWriter, request *http.Request) {
98419894 }
98429895 }
98439896
9897+
98449898 if workflow.Public {
9899+ workflow.BackupConfig = BackupConfig{}
98459900 workflow.ExecutingOrg = OrgMini{}
98469901 workflow.Org = []OrgMini{}
98479902 workflow.OrgId = ""
@@ -9852,6 +9907,40 @@ func GetSpecificWorkflow(resp http.ResponseWriter, request *http.Request) {
98529907 }
98539908 }
98549909
9910+ if workflow.BackupConfig.TokensEncrypted {
9911+ parsedKey := fmt.Sprintf("%s_upload_token", workflow.OrgId)
9912+ newValue, err := HandleKeyDecryption([]byte(workflow.BackupConfig.UploadToken), parsedKey)
9913+ if err != nil {
9914+ log.Printf("[ERROR] Failed decrypting token for workflow %s (%s): %s", workflow.Name, workflow.ID, err)
9915+ } else {
9916+ workflow.BackupConfig.UploadToken = string(newValue)
9917+ }
9918+
9919+ parsedKey = fmt.Sprintf("%s_upload_username", workflow.OrgId)
9920+ newValue, err = HandleKeyDecryption([]byte(workflow.BackupConfig.UploadUsername), parsedKey)
9921+ if err != nil {
9922+ log.Printf("[ERROR] Failed decrypting username for workflow %s (%s): %s", workflow.Name, workflow.ID, err)
9923+ } else {
9924+ workflow.BackupConfig.UploadUsername = string(newValue)
9925+ }
9926+
9927+ parsedKey = fmt.Sprintf("%s_upload_repo", workflow.OrgId)
9928+ newValue, err = HandleKeyDecryption([]byte(workflow.BackupConfig.UploadRepo), parsedKey)
9929+ if err != nil {
9930+ log.Printf("[ERROR] Failed decrypting repo for workflow %s (%s): %s", workflow.Name, workflow.ID, err)
9931+ } else {
9932+ workflow.BackupConfig.UploadRepo = string(newValue)
9933+ }
9934+
9935+ parsedKey = fmt.Sprintf("%s_upload_branch", workflow.OrgId)
9936+ newValue, err = HandleKeyDecryption([]byte(workflow.BackupConfig.UploadBranch), parsedKey)
9937+ if err != nil {
9938+ log.Printf("[ERROR] Failed decrypting branch for org %s (%s): %s", workflow.Name, workflow.ID, err)
9939+ } else {
9940+ workflow.BackupConfig.UploadBranch = string(newValue)
9941+ }
9942+ }
9943+
98559944 log.Printf("[INFO] Got new version of workflow %s (%s) for org %s and user %s (%s). Actions: %d, Triggers: %d", workflow.Name, workflow.ID, user.ActiveOrg.Id, user.Username, user.Id, len(workflow.Actions), len(workflow.Triggers))
98569945
98579946 body, err := json.Marshal(workflow)
0 commit comments