/// <summary> /// Get the specified request. /// </summary> /// <param name="request">Request.</param> public object Get(UserGetGroupsRequestTep request) { List <WebGroup> result = new List <WebGroup>(); var context = TepWebContext.GetWebContext(PagePrivileges.UserView); try { context.Open(); context.LogInfo(this, string.Format("/user/{{usrId}}/group PUT usrId='{0}'", request.UsrId)); UserTep user = UserTep.FromIdentifier(context, request.UsrId); List <int> ids = user.GetGroups(); List <Group> groups = new List <Group>(); foreach (int id in ids) { groups.Add(Group.FromId(context, id)); } foreach (Group grp in groups) { result.Add(new WebGroup(grp)); } context.Close(); } catch (Exception e) { context.LogError(this, e.Message, e); context.Close(); throw e; } return(result); }
public object Get(AnalyticsRequestTep request) { var context = TepWebContext.GetWebContext(PagePrivileges.EverybodyView); WebAnalytics result = new WebAnalytics(); try { context.Open(); context.LogInfo(this, string.Format("/analytics GET - type='{0}', identifier='{1}'", request.Type, request.Identifier)); Analytics analytics = null; if (context.UserId == 0) { request.Type = "all"; } switch (request.Type) { case "user": analytics = new Analytics(context, UserTep.FromIdentifier(context, request.Identifier)); analytics.Load(request.startdate, request.enddate); break; case "community": analytics = new Analytics(context, ThematicCommunity.FromIdentifier(context, request.Identifier)); analytics.Load(request.startdate, request.enddate); break; case "group": analytics = new Analytics(context, Group.FromIdentifier(context, request.Identifier)); analytics.Load(request.startdate, request.enddate); break; case "service": analytics = new Analytics(context, Service.FromIdentifier(context, request.Identifier)); analytics.Load(request.startdate, request.enddate); break; case "all": analytics = new Analytics(context); analytics.Load(request.startdate, request.enddate); break; default: break; } if (analytics != null) { result = new WebAnalytics(analytics); } context.Close(); } catch (Exception e) { context.LogError(this, e.Message, e); context.Close(); throw e; } return(result); }
public object Get(ThematicAppCacheRequestTep request) { var context = TepWebContext.GetWebContext(PagePrivileges.UserView); context.Open(); try { context.LogInfo(this, string.Format("/apps/cache GET")); var appFactory = new ThematicAppCachedFactory(context); if (!string.IsNullOrEmpty(request.Uid)) { //refresh only a given app appFactory.RefreshCachedApp(request.Uid); } else if (!string.IsNullOrEmpty(request.Username)) { //refresh only for private apps var user = UserTep.FromIdentifier(context, request.Username); if (user.Id == context.UserId) { appFactory.RefreshCachedAppsForUser(user); } } else if (!string.IsNullOrEmpty(request.Community)) { //refresh only for community apps var community = ThematicCommunity.FromIdentifier(context, request.Community); if (community.CanUserManage(context.UserId)) { appFactory.RefreshCachedAppsForCommunity(community); } } else { //user should be admin if (context.UserLevel == UserLevel.Administrator) { //case TEP -- we don't want user privates apps to be cached appFactory.RefreshCachedApps(false, true, true); } } context.Close(); } catch (Exception e) { context.LogError(this, e.Message, e); context.Close(); throw e; } return(new WebResponseBool(true)); }
public object Put(UpdateProfileFromRemoteTep request) { WebUserTep result = null; var context = TepWebContext.GetWebContext(PagePrivileges.AdminOnly); context.Open(); var usr = UserTep.FromIdentifier(context, request.Identifier); try { usr.LoadProfileFromRemote(); result = new WebUserTep(context, usr); }catch (Exception e) { context.LogError(this, e.Message + " - " + e.StackTrace); } context.Close(); return(result); }
public object Get(UserGetSSORequestTep request) { WebUserTep result; var context = TepWebContext.GetWebContext(PagePrivileges.AdminOnly); try { context.Open(); context.LogInfo(this, string.Format("/user/sso/{{Id}} GET Id='{0}'", request.Identifier)); UserTep user = UserTep.FromIdentifier(context, request.Identifier); //user.FindTerradueCloudUsername(); result = new WebUserTep(context, user); context.Close(); } catch (Exception e) { context.LogError(this, e.Message, e); context.Close(); throw e; } return(result); }
public object Put(UserUpdateSSORequestTep request) { WebUserTep result; var context = TepWebContext.GetWebContext(PagePrivileges.AdminOnly); try { context.Open(); context.LogInfo(this, string.Format("/user/sso PUT Identifier='{0}',T2Username='******'", request.Identifier, request.T2Username)); UserTep user = UserTep.FromIdentifier(context, request.Identifier); user.TerradueCloudUsername = request.T2Username; user.StoreCloudUsername(); result = new WebUserTep(context, user); context.Close(); } catch (Exception e) { context.LogError(this, e.Message, e); context.Close(); throw e; } return(result); }
public object Put(UpdateBulkUsersProfileFromRemoteTep request) { IfyWebContext context = TepWebContext.GetWebContext(PagePrivileges.AdminOnly); try { context.Open(); context.LogInfo(this, string.Format("/users/profile PUT Ids='{0}'", string.Join(",", request.Identifiers))); foreach (var identifier in request.Identifiers) { try { var usr = UserTep.FromIdentifier(context, identifier); usr.LoadProfileFromRemote(); }catch (Exception e) { context.LogError(this, e.Message + " - " + e.StackTrace); } } try{ var portalname = string.Format("{0} Portal", context.GetConfigValue("SiteNameShort")); var subject = context.GetConfigValue("EmailBulkActionSubject"); subject = subject.Replace("$(SITENAME)", portalname); var body = context.GetConfigValue("EmailBulkActionBody"); body = body.Replace("$(ADMIN)", context.Username); body = body.Replace("$(ACTION)", "User remote profile load"); body = body.Replace("$(IDENTIFIERS)", string.Join(",", request.Identifiers)); context.SendMail(context.GetConfigValue("SmtpUsername"), context.GetConfigValue("SmtpUsername"), subject, body); } catch (Exception e) { context.LogError(this, e.Message + " - " + e.StackTrace); } context.Close(); } catch (Exception e) { context.LogError(this, e.Message + " - " + e.StackTrace); context.Close(); throw e; } return(true); }
public object Post(UserAddTransactionRequestTep request) { var context = TepWebContext.GetWebContext(PagePrivileges.AdminOnly); WebUserTep result; try { context.Open(); context.LogInfo(this, string.Format("/transaction/user POST Identifier='{0}', Balance='{1}'", request.Identifier, request.Balance)); UserTep user = UserTep.FromIdentifier(context, request.Identifier); user.AddAccountingTransaction(request.Balance, (TransactionKind)request.Kind); result = new WebUserTep(context, user); context.Close(); } catch (Exception e) { context.LogError(this, e.Message, e); context.Close(); throw e; } return(result); }
public object Get(TransactionsSearchRequestTep request) { var context = TepWebContext.GetWebContext(PagePrivileges.UserView); IOpenSearchResultCollection result; try { context.Open(); context.LogInfo(this, string.Format("/transaction/search GET")); // Load the complete request var httpRequest = HttpContext.Current.Request; EntityList <Transaction> transactions = new EntityList <Transaction>(context); if (context.AccessLevel != EntityAccessLevel.Administrator || httpRequest.QueryString["author"] == null) { //Only admin can see others transactions transactions.SetFilter("OwnerId", context.UserId + ""); } else { var user = UserTep.FromIdentifier(context, httpRequest.QueryString["author"]); transactions.SetFilter("OwnerId", user.Id + ""); } transactions.AddSort("LogTime", SortDirection.Descending); var ose = MasterCatalogue.OpenSearchEngine; Type responseType = OpenSearchFactory.ResolveTypeFromRequest(httpRequest.QueryString, httpRequest.Headers, ose); result = ose.Query(transactions, httpRequest.QueryString, responseType); OpenSearchFactory.ReplaceOpenSearchDescriptionLinks(transactions, result); context.Close(); } catch (Exception e) { context.LogError(this, e.Message, e); context.Close(); throw e; } return(new HttpResult(result.SerializeToString(), result.ContentType)); }
public object Delete(UserDeleteRequestTep request) { var context = TepWebContext.GetWebContext(PagePrivileges.AdminOnly); context.Open(); var usr = UserTep.FromIdentifier(context, request.UsrId); try{ var portalname = string.Format("{0} Portal", context.GetConfigValue("SiteNameShort")); var subject = context.GetConfigValue("EmailUserDeleteSubject"); subject = subject.Replace("$(SITENAME)", portalname); var body = context.GetConfigValue("EmailUserDeleteBody"); body = body.Replace("$(USERNAME)", usr.Username); body = body.Replace("$(ADMIN)", context.Username); context.SendMail(context.GetConfigValue("SmtpUsername"), context.GetConfigValue("SmtpUsername"), subject, body); } catch (Exception e) { context.LogError(this, e.Message + " - " + e.StackTrace); } usr.Delete(); context.Close(); return(true); }
public object Get(UserHasT2NotebooksRequestTep request) { bool result = false; var context = TepWebContext.GetWebContext(PagePrivileges.UserView); try { context.Open(); context.LogInfo(this, string.Format("/user/{{usrId}}/notebooks GET usrId='{0}'", request.UsrId)); UserTep user = UserTep.FromIdentifier(context, request.UsrId); if (context.AccessLevel == EntityAccessLevel.Administrator || context.Username == request.UsrId) { result = user.HasT2NotebooksAccount(); } context.Close(); } catch (Exception e) { context.LogError(this, e.Message, e); context.Close(); throw e; } return(result); }
public object Put(UserUpdateStatusRequestTep request) { var context = TepWebContext.GetWebContext(PagePrivileges.AdminOnly); WebUserTep result; try { context.Open(); context.LogInfo(this, string.Format("/user/status PUT Id='{0}',Status='{1}'", request.Id > 0 ? request.Id + "" : request.Identifier, request.AccountStatus)); UserTep user = (request.Id == 0 ? (!string.IsNullOrEmpty(request.Identifier) ? UserTep.FromIdentifier(context, request.Identifier) : null) : UserTep.FromId(context, request.Id)); user.AccountStatus = request.AccountStatus; user.Store(); context.LogDebug(this, string.Format("Status of user '{0}' has been updated to {1}", user.Username, request.AccountStatus)); result = new WebUserTep(context, user); context.Close(); } catch (Exception e) { context.LogError(this, e.Message, e); context.Close(); throw e; } return(result); }
/// <summary> /// Update the specified user. /// </summary> /// <param name="request">Request.</param> /// <returns>the user</returns> public object Put(UserUpdateRequestTep request) { var context = TepWebContext.GetWebContext(PagePrivileges.UserView); WebUserTep result; try { context.Open(); context.LogInfo(this, string.Format("/user PUT Id='{0}'", request.Id > 0 ? request.Id + "" : request.Identifier)); UserTep user = (request.Id == 0 ? (!string.IsNullOrEmpty(request.Identifier) ? UserTep.FromIdentifier(context, request.Identifier) : null) : UserTep.FromId(context, request.Id)); if (context.UserId != user.Id && context.AccessLevel != EntityAccessLevel.Administrator) { throw new Exception("Action not allowed"); } var level = user.Level; user = request.ToEntity(context, user); user.Level = level;//we can only change the level from the dedicated request (admin only) user.Store(); context.LogDebug(this, string.Format("User '{0}' has been updated", user.Username)); result = new WebUserTep(context, user); context.Close(); } catch (Exception e) { context.LogError(this, e.Message, e); context.Close(); throw e; } return(result); }