func TestOAuthStoreUpdateApp(t *testing.T) { Setup() a1 := model.OAuthApp{} a1.CreatorId = model.NewId() a1.Name = "TestApp" + model.NewId() a1.CallbackUrls = []string{"https://nowhere.com"} a1.Homepage = "https://nowhere.com" Must(store.OAuth().SaveApp(&a1)) a1.CreateAt = 1 a1.ClientSecret = "pwd" a1.CreatorId = "12345678901234567890123456" a1.Name = "NewName" if result := <-store.OAuth().UpdateApp(&a1); result.Err != nil { t.Fatal(result.Err) } else { ua1 := (result.Data.([2]*model.OAuthApp)[0]) if ua1.Name != "NewName" { t.Fatal("name did not update") } if ua1.CreateAt == 1 { t.Fatal("create at should not have updated") } if ua1.CreatorId == "12345678901234567890123456" { t.Fatal("creator id should not have updated") } } }
func TestOAuthGetAuthorizedApps(t *testing.T) { Setup() a1 := model.OAuthApp{} a1.CreatorId = model.NewId() a1.Name = "TestApp" + model.NewId() a1.CallbackUrls = []string{"https://nowhere.com"} a1.Homepage = "https://nowhere.com" Must(store.OAuth().SaveApp(&a1)) // allow the app p := model.Preference{} p.UserId = a1.CreatorId p.Category = model.PREFERENCE_CATEGORY_AUTHORIZED_OAUTH_APP p.Name = a1.Id p.Value = "true" Must(store.Preference().Save(&model.Preferences{p})) if result := <-store.OAuth().GetAuthorizedApps(a1.CreatorId); result.Err != nil { t.Fatal(result.Err) } else { apps := result.Data.([]*model.OAuthApp) if len(apps) == 0 { t.Fatal("It should have return apps") } } }
func TestOAuthStoreDeleteApp(t *testing.T) { a1 := model.OAuthApp{} a1.CreatorId = model.NewId() a1.Name = "TestApp" + model.NewId() a1.CallbackUrls = []string{"https://nowhere.com"} a1.Homepage = "https://nowhere.com" Must(store.OAuth().SaveApp(&a1)) if err := (<-store.OAuth().DeleteApp(a1.Id)).Err; err != nil { t.Fatal(err) } }
func TestOAuthGetAccessDataByUserForApp(t *testing.T) { Setup() a1 := model.OAuthApp{} a1.CreatorId = model.NewId() a1.Name = "TestApp" + model.NewId() a1.CallbackUrls = []string{"https://nowhere.com"} a1.Homepage = "https://nowhere.com" Must(store.OAuth().SaveApp(&a1)) // allow the app p := model.Preference{} p.UserId = a1.CreatorId p.Category = model.PREFERENCE_CATEGORY_AUTHORIZED_OAUTH_APP p.Name = a1.Id p.Value = "true" Must(store.Preference().Save(&model.Preferences{p})) if result := <-store.OAuth().GetAuthorizedApps(a1.CreatorId); result.Err != nil { t.Fatal(result.Err) } else { apps := result.Data.([]*model.OAuthApp) if len(apps) == 0 { t.Fatal("It should have return apps") } } // save the token ad1 := model.AccessData{} ad1.ClientId = a1.Id ad1.UserId = a1.CreatorId ad1.Token = model.NewId() ad1.RefreshToken = model.NewId() if err := (<-store.OAuth().SaveAccessData(&ad1)).Err; err != nil { t.Fatal(err) } if result := <-store.OAuth().GetAccessDataByUserForApp(a1.CreatorId, a1.Id); result.Err != nil { t.Fatal(result.Err) } else { accessData := result.Data.([]*model.AccessData) if len(accessData) == 0 { t.Fatal("It should have return access data") } } }
func (as SqlOAuthStore) UpdateApp(app *model.OAuthApp) StoreChannel { storeChannel := make(StoreChannel) go func() { result := StoreResult{} app.PreUpdate() if result.Err = app.IsValid(); result.Err != nil { storeChannel <- result close(storeChannel) return } if oldAppResult, err := as.GetMaster().Get(model.OAuthApp{}, app.Id); err != nil { result.Err = model.NewLocAppError("SqlOAuthStore.UpdateApp", "store.sql_oauth.update_app.finding.app_error", nil, "app_id="+app.Id+", "+err.Error()) } else if oldAppResult == nil { result.Err = model.NewLocAppError("SqlOAuthStore.UpdateApp", "store.sql_oauth.update_app.find.app_error", nil, "app_id="+app.Id) } else { oldApp := oldAppResult.(*model.OAuthApp) app.CreateAt = oldApp.CreateAt app.ClientSecret = oldApp.ClientSecret app.CreatorId = oldApp.CreatorId if count, err := as.GetMaster().Update(app); err != nil { result.Err = model.NewLocAppError("SqlOAuthStore.UpdateApp", "store.sql_oauth.update_app.updating.app_error", nil, "app_id="+app.Id+", "+err.Error()) } else if count != 1 { result.Err = model.NewLocAppError("SqlOAuthStore.UpdateApp", "store.sql_oauth.update_app.update.app_error", nil, "app_id="+app.Id) } else { result.Data = [2]*model.OAuthApp{app, oldApp} } } storeChannel <- result close(storeChannel) }() return storeChannel }
func (as SqlOAuthStore) UpdateApp(app *model.OAuthApp) StoreChannel { storeChannel := make(StoreChannel) go func() { result := StoreResult{} app.PreUpdate() if result.Err = app.IsValid(); result.Err != nil { storeChannel <- result close(storeChannel) return } if oldAppResult, err := as.GetMaster().Get(model.OAuthApp{}, app.Id); err != nil { result.Err = model.NewAppError("SqlOAuthStore.UpdateApp", "We encountered an error finding the app", "app_id="+app.Id+", "+err.Error()) } else if oldAppResult == nil { result.Err = model.NewAppError("SqlOAuthStore.UpdateApp", "We couldn't find the existing app to update", "app_id="+app.Id) } else { oldApp := oldAppResult.(*model.OAuthApp) app.CreateAt = oldApp.CreateAt app.ClientSecret = oldApp.ClientSecret app.CreatorId = oldApp.CreatorId if count, err := as.GetMaster().Update(app); err != nil { result.Err = model.NewAppError("SqlOAuthStore.UpdateApp", "We encountered an error updating the app", "app_id="+app.Id+", "+err.Error()) } else if count != 1 { result.Err = model.NewAppError("SqlOAuthStore.UpdateApp", "We couldn't update the app", "app_id="+app.Id) } else { result.Data = [2]*model.OAuthApp{app, oldApp} } } storeChannel <- result close(storeChannel) }() return storeChannel }