✨ Allow access user info via numeric id
This commit is contained in:
		
							
								
								
									
										60
									
								
								.idea/workspace.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										60
									
								
								.idea/workspace.xml
									
									
									
										generated
									
									
									
								
							| @@ -4,9 +4,9 @@ | ||||
|     <option name="autoReloadType" value="ALL" /> | ||||
|   </component> | ||||
|   <component name="ChangeListManager"> | ||||
|     <list default="true" id="3fefb2c4-b6f9-466b-a523-53352e8d6f95" name="更改" comment=":bug: Fix auth cache"> | ||||
|     <list default="true" id="3fefb2c4-b6f9-466b-a523-53352e8d6f95" name="更改" comment=":sparkles: Allow get realm by numeric auto increment id"> | ||||
|       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/pkg/internal/services/realms.go" beforeDir="false" afterPath="$PROJECT_DIR$/pkg/internal/services/realms.go" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/pkg/internal/http/api/userinfo_api.go" beforeDir="false" afterPath="$PROJECT_DIR$/pkg/internal/http/api/userinfo_api.go" afterDir="false" /> | ||||
|     </list> | ||||
|     <option name="SHOW_DIALOG" value="false" /> | ||||
|     <option name="HIGHLIGHT_CONFLICTS" value="true" /> | ||||
| @@ -45,35 +45,35 @@ | ||||
|     <option name="hideEmptyMiddlePackages" value="true" /> | ||||
|     <option name="showLibraryContents" value="true" /> | ||||
|   </component> | ||||
|   <component name="PropertiesComponent"><![CDATA[{ | ||||
|   "keyToString": { | ||||
|     "DefaultGoTemplateProperty": "Go File", | ||||
|     "Go Build.Backend.executor": "Debug", | ||||
|     "Go 构建.Backend.executor": "Run", | ||||
|     "RunOnceActivity.ShowReadmeOnStart": "true", | ||||
|     "RunOnceActivity.git.unshallow": "true", | ||||
|     "RunOnceActivity.go.formatter.settings.were.checked": "true", | ||||
|     "RunOnceActivity.go.migrated.go.modules.settings": "true", | ||||
|     "RunOnceActivity.go.modules.automatic.dependencies.download": "true", | ||||
|     "RunOnceActivity.go.modules.go.list.on.any.changes.was.set": "true", | ||||
|     "git-widget-placeholder": "master", | ||||
|     "go.import.settings.migrated": "true", | ||||
|     "go.sdk.automatically.set": "true", | ||||
|     "last_opened_file_path": "/Users/littlesheep/Documents/Projects/Hypernet/Passport", | ||||
|     "node.js.detected.package.eslint": "true", | ||||
|     "node.js.selected.package.eslint": "(autodetect)", | ||||
|     "nodejs_package_manager_path": "npm", | ||||
|     "run.code.analysis.last.selected.profile": "pProject Default", | ||||
|     "settings.editor.selected.configurable": "preferences.intentionPowerPack", | ||||
|     "ts.external.directory.path": "/Users/littlesheep/Documents/Projects/Hydrogen/Passport/web/node_modules/typescript/lib", | ||||
|     "vue.rearranger.settings.migration": "true" | ||||
|   <component name="PropertiesComponent">{ | ||||
|   "keyToString": { | ||||
|     "DefaultGoTemplateProperty": "Go File", | ||||
|     "Go Build.Backend.executor": "Debug", | ||||
|     "Go 构建.Backend.executor": "Run", | ||||
|     "RunOnceActivity.ShowReadmeOnStart": "true", | ||||
|     "RunOnceActivity.git.unshallow": "true", | ||||
|     "RunOnceActivity.go.formatter.settings.were.checked": "true", | ||||
|     "RunOnceActivity.go.migrated.go.modules.settings": "true", | ||||
|     "RunOnceActivity.go.modules.automatic.dependencies.download": "true", | ||||
|     "RunOnceActivity.go.modules.go.list.on.any.changes.was.set": "true", | ||||
|     "git-widget-placeholder": "master", | ||||
|     "go.import.settings.migrated": "true", | ||||
|     "go.sdk.automatically.set": "true", | ||||
|     "last_opened_file_path": "/Users/littlesheep/Documents/Projects/Hypernet/Passport", | ||||
|     "node.js.detected.package.eslint": "true", | ||||
|     "node.js.selected.package.eslint": "(autodetect)", | ||||
|     "nodejs_package_manager_path": "npm", | ||||
|     "run.code.analysis.last.selected.profile": "pProject Default", | ||||
|     "settings.editor.selected.configurable": "preferences.intentionPowerPack", | ||||
|     "ts.external.directory.path": "/Users/littlesheep/Documents/Projects/Hydrogen/Passport/web/node_modules/typescript/lib", | ||||
|     "vue.rearranger.settings.migration": "true" | ||||
|   }, | ||||
|   "keyToStringList": { | ||||
|     "DatabaseDriversLRU": [ | ||||
|       "postgresql" | ||||
|   "keyToStringList": { | ||||
|     "DatabaseDriversLRU": [ | ||||
|       "postgresql" | ||||
|     ] | ||||
|   } | ||||
| }]]></component> | ||||
| }</component> | ||||
|   <component name="RecentsManager"> | ||||
|     <key name="CopyFile.RECENT_KEYS"> | ||||
|       <recent name="$PROJECT_DIR$/keys" /> | ||||
| @@ -159,7 +159,6 @@ | ||||
|   </component> | ||||
|   <component name="VcsManagerConfiguration"> | ||||
|     <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" /> | ||||
|     <MESSAGE value=":alien: Support better metadata encoder / decoder" /> | ||||
|     <MESSAGE value=":bug: Bug fixes on compile time" /> | ||||
|     <MESSAGE value=":bug: Fix notification order" /> | ||||
|     <MESSAGE value=":bug: Fix notification order... again" /> | ||||
| @@ -184,7 +183,8 @@ | ||||
|     <MESSAGE value=":sparkles: Authkit support check user related permission" /> | ||||
|     <MESSAGE value=":sparkles: Authkit can get user" /> | ||||
|     <MESSAGE value=":bug: Fix auth cache" /> | ||||
|     <option name="LAST_COMMIT_MESSAGE" value=":bug: Fix auth cache" /> | ||||
|     <MESSAGE value=":sparkles: Allow get realm by numeric auto increment id" /> | ||||
|     <option name="LAST_COMMIT_MESSAGE" value=":sparkles: Allow get realm by numeric auto increment id" /> | ||||
|     <option name="GROUP_MULTIFILE_MERGE_BY_DIRECTORY" value="true" /> | ||||
|   </component> | ||||
|   <component name="VgoProject"> | ||||
|   | ||||
| @@ -3,8 +3,8 @@ package api | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"git.solsynth.dev/hypernet/passport/pkg/authkit/models" | ||||
| 	"github.com/spf13/viper" | ||||
| 	"gorm.io/gorm" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
|  | ||||
| 	"git.solsynth.dev/hypernet/passport/pkg/internal/database" | ||||
| @@ -15,13 +15,18 @@ import ( | ||||
| func getOtherUserinfo(c *fiber.Ctx) error { | ||||
| 	alias := c.Params("alias") | ||||
|  | ||||
| 	tx := database.C.Where("name = ?") | ||||
|  | ||||
| 	numericId, err := strconv.Atoi(alias) | ||||
| 	if err == nil { | ||||
| 		tx = tx.Where("id = ?", numericId) | ||||
| 	} | ||||
|  | ||||
| 	var account models.Account | ||||
| 	if err := database.C. | ||||
| 		Where(&models.Account{Name: alias}). | ||||
| 	if err := tx. | ||||
| 		Preload("Profile"). | ||||
| 		Preload("Badges", func(db *gorm.DB) *gorm.DB { | ||||
| 			prefix := viper.GetString("database.prefix") | ||||
| 			return db.Order(fmt.Sprintf("%sbadges.type DESC", prefix)) | ||||
| 			return db.Order("badges.type DESC") | ||||
| 		}). | ||||
| 		First(&account).Error; err != nil { | ||||
| 		return fiber.NewError(fiber.StatusBadRequest, err.Error()) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user