public string GetUserScope(string query, string body, IAppServerServices services) { var logger = services.Logger; try { var values = JsonConvert.DeserializeObject<Dictionary<string, string>>(body); var product = new List<string> { "est" }; var loginUser = values != null && values.ContainsKey("loginUser") ? values["loginUser"] : null; var lookedUpUser = values != null && values.ContainsKey("lookedUpUser") ? values["lookedUpUser"] : null; var searchString = values != null && values.ContainsKey("searchString") && !string.IsNullOrEmpty(values["searchString"]) ? values["searchString"] : "*"; var loginAaaUser = new AaaUser(); loginAaaUser.SetUser(!String.IsNullOrEmpty(loginUser) ? loginUser : services.UserContext.UUID); var fromCache = false; var cacheKey = string.Format("{0}_{1}_PEMISSION", services.UserContext.UUID, lookedUpUser ?? "INITIAL"); UserPermission userPermission; if (_Cache.Contains(cacheKey)) { userPermission = _Cache.Get(cacheKey) as UserPermission; fromCache = true; } else { userPermission = new UserPermission { IsAllowToUploadMetadata = Permission.IsAllowToUploadMetadata(loginAaaUser, product) ? "true" : "false", IsAllowToGetStats = Permission.IsAllowToGetStats(loginAaaUser, product) ? "true" : "false", IsInternal = Permission.IsUserInternal(loginAaaUser) ? "true" : "false", IsUserInScope = string.IsNullOrEmpty(lookedUpUser) ? "n/a" : Permission.IsUserInScope(loginAaaUser, lookedUpUser) ? "true" : "false" }; _Cache.Set(cacheKey, userPermission, DateTimeOffset.UtcNow.AddMinutes(1)); } #region loginUser var userSettingString = "{}"; var userPermissionSetting = Permission.GetUserPermission(loginAaaUser); if (userPermissionSetting != null) { userSettingString = JsonConvert.SerializeObject(userPermissionSetting); } var permissionString = "{}"; if (userPermission != null) { permissionString = JsonConvert.SerializeObject(userPermission); } var loginUserPermission = String.Format("{{\"userPermission\":{0},\"setting\":{1},\"cache\":\"{2}\"}}", permissionString, userSettingString, fromCache.ToString().ToLower() ); var loginUserLocation = String.Format("{{\"locationScope\":{0},\"topLocationScope\":\"{1}\"}}", Permission.GetUserInScopeAaaDetails(loginUser, loginUser), Permission.GetTopLocationScope(loginAaaUser) ); var loginUserResult = String.Format("{{\"Info\":{0},\"Permissions\":{1},\"Locations\":{2}}}", loginAaaUser.GetJsonString(), loginUserPermission, loginUserLocation ); #endregion #region searchUser var req = new FindMachineInstallRequest() { SearchString = searchString, Product = "est", Filter = true }; var searchResult = FindMachineInstall(req,loginAaaUser,logger); #endregion #region lookupUser var lookupUserResult = String.Format("{{\"locationScope\":\"empty argument\"}}"); var lookupAaaUser = new AaaUser(); if (!String.IsNullOrEmpty(lookedUpUser)) { var lookupUserLocation = String.Format("{{\"locationScope\":{0}}}", Permission.GetUserInScopeAaaDetails(loginUser, lookedUpUser) ); lookupAaaUser.SetUser(lookedUpUser); lookupUserResult = String.Format("{{\"Info\":{0},\"Locations\":{1}}}", lookupAaaUser.GetJsonString(), lookupUserLocation ); } #endregion var result = String.Format("{{\"LogInUser\":{0},\"LookUpUser\":{1},\"SearchResult\":{2},\"status\":\"{3}\"}}", loginUserResult, lookupUserResult, searchResult, "Done" ); return result; } catch (Exception ex) { logger.LogError("GetUserScope - error {0}", ex.Message); return String.Format("{{\"status\":\"{0}\"}}", "Error: " + ex.Message ); } }
public string GetUserPermissions(string query, string body, IAppServerServices services) { var values = JsonConvert.DeserializeObject<Dictionary<string, string>>(body); var product = new List<string> { "est" }; var enterUuid = values != null && values.ContainsKey("uuid") ? values["uuid"] : null; var fromCache = false; var cacheKey = string.Format("{0}_{1}_PEMISSION", services.UserContext.UUID, enterUuid ?? "INITIAL"); UserPermission userPermission; if (_Cache.Contains(cacheKey)) { userPermission = _Cache.Get(cacheKey) as UserPermission; fromCache = true; } else { userPermission = new UserPermission { IsAllowToUploadMetadata = Permission.IsAllowToUploadMetadata(services.UserContext, product) ? "true" : "false", IsAllowToGetStats = Permission.IsAllowToGetStats(services.UserContext, product) ? "true" : "false", IsInternal = Permission.IsUserInternal(services.UserContext) ? "true" : "false", IsUserInScope = string.IsNullOrEmpty(enterUuid) ? "true" : Permission.IsUserInScope(services.UserContext, enterUuid) ? "true" : "false" }; _Cache.Set(cacheKey, userPermission, DateTimeOffset.UtcNow.AddMinutes(1)); } return String.Format("{{\"isAllowToUploadMetadata\":{0},\"isAllowToGetStats\":{1},\"isInternal\":{2},\"isUserInScope\":{3},\"cache\":{4},\"scope\":{5}}}", userPermission.IsAllowToUploadMetadata, userPermission.IsAllowToGetStats, userPermission.IsInternal, userPermission.IsUserInScope, fromCache?"true":"false", Permission.GetUserInScopeAaaDetails(services.UserContext.UUID, enterUuid) ); }