public static void PersistFormTemplate(OpenFormGraphManager _manager, string _json) { if (_json != null) { FormTemplate jFormTemplate = JsonConvert.DeserializeObject <FormTemplate>(_json); FormRecord form = null; if (!string.IsNullOrEmpty(jFormTemplate.Guid)) { Guid guid; if (Guid.TryParse(jFormTemplate.Guid, out guid)) { form = _manager.GetFormRecord(guid); } } if (form == null) { form = new FormRecord { Active = true, IsTemplate = true }; } form.Description = jFormTemplate.Description; form.FormSubject = jFormTemplate.FormSubject; form.Name = jFormTemplate.Name; form.SuperclassGuid = jFormTemplate.SuperclassGuid; _manager.Persist(form); } }
public static List <JsonObjects.User> GetUsers(OpenFormGraphManager _manager, List <TGUser> _users) { List <JsonObjects.User> jUsers = new List <User>(); foreach (TGUser tgUser in _users) { JsonObjects.User user = new User(tgUser); if (_manager.HasUserRole(user.Guid, UserRoles.UserAdmin)) { user.IsUserAdmin = true; } else { user.IsUserAdmin = false; } if (_manager.HasUserRole(user.Guid, UserRoles.DataAdmin)) { user.IsDataAdmin = true; } else { user.IsDataAdmin = false; } jUsers.Add(user); } return(jUsers); }
public static User ValidateToken(OpenFormGraphManager _manager, Request _request) { string username = _request.Headers["Username"].First(); string token = _request.Headers["AuthToken"].First(); TGUser user; if (_manager.ValidateUser(username, token, out user)) { User result = new User(user); if (_manager.HasUserRole(user.Guid, UserRoles.UserAdmin)) { result.IsUserAdmin = true; } else { result.IsUserAdmin = false; } if (_manager.HasUserRole(user.Guid, UserRoles.DataAdmin)) { result.IsDataAdmin = true; } else { result.IsDataAdmin = false; } return(result); } return(null); }
public static bool IsAuthorized(Request _request, out TGUser _user) { OpenFormGraphManager manager = new OpenFormGraphManager(); string username = _request.Headers["Username"].First(); string authToken = _request.Headers["AuthorizationToken"].First(); TGUser user = manager.GetUser(username); if (user != null) { TGUserAuthorization userAuth = manager.GetUserAuthorization(user.Guid, authToken); if (userAuth != null && !userAuth.IsExpired()) { _user = user; return(true); } } _user = null; return(false); }
public static string GetFormTemplate(OpenFormGraphManager _manager, Guid _formTemplateGuid) { FormRecord formRecord = _manager.GetFormRecord(_formTemplateGuid); if (formRecord != null) { FormTemplate jFormTemplate = new FormTemplate(formRecord); return(JsonConvert.SerializeObject(jFormTemplate)); } return(null); }
public static List <JsonObjects.FormTemplate> GetFormTemplates(OpenFormGraphManager _manager, List <FormRecord> _formRecords) { List <JsonObjects.FormTemplate> jFormTemplates = new List <FormTemplate>(); foreach (FormRecord formRecord in _formRecords) { FormTemplate jFormTemplate = new FormTemplate(formRecord); jFormTemplates.Add(jFormTemplate); //Load child objects } return(jFormTemplates); }
/// <summary> /// /// </summary> /// <param name="_parameters"></param> /// <returns></returns> public string HandleUsersGet(DynamicDictionary _parameters) { OpenFormGraphManager manager = new OpenFormGraphManager(); User jUser = AuthHelper.ValidateToken(manager, Request); if (jUser != null && jUser.IsUserAdmin) { List <TGUser> users = manager.GetUsers(); List <User> jUsers = JsonHelper.GetUsers(manager, users); return(JsonConvert.SerializeObject(jUsers)); } return("[]"); }
public string HandleFormTemplatesGet(DynamicDictionary _parameters) { OpenFormGraphManager manager = new OpenFormGraphManager(); User jUser = AuthHelper.ValidateToken(manager, Request); if (jUser != null && jUser.IsDataAdmin) { List <FormRecord> formRecords = manager.GetTemplateFormRecords(); List <JsonObjects.FormTemplate> formTemplates = JsonHelper.GetFormTemplates(manager, formRecords); return(JsonConvert.SerializeObject(formTemplates)); } return(null); }
public string HandleFormTemplateGet(DynamicDictionary _parameters) { OpenFormGraphManager manager = new OpenFormGraphManager(); User jUser = AuthHelper.ValidateToken(manager, Request); if (jUser != null && jUser.IsDataAdmin) { Guid formTemplateGuid; string guid = _parameters["guid"]; if (Guid.TryParse(guid, out formTemplateGuid)) { return(JsonHelper.GetFormTemplate(manager, formTemplateGuid)); } } return(null); }
public string HandleFormTemplatePost(DynamicDictionary _parameters) { BaseResult result = new BaseResult { Result = "Failure" }; OpenFormGraphManager manager = new OpenFormGraphManager(); User jUser = AuthHelper.ValidateToken(manager, Request); if (jUser != null && jUser.IsDataAdmin) { string json = ReadBody(); JsonHelper.PersistFormTemplate(manager, json); result.Result = "Success"; } return(JsonConvert.SerializeObject(result)); }
public IUserIdentity GetUserFromIdentifier(Guid _identifier, NancyContext _context) { OpenFormGraphManager manager = new OpenFormGraphManager(); TGUser user = manager.GetUser(_identifier); if (user != null && user.IsVerified) { if (user.EulaAccepted || _context.Request.Path.Contains("signeula")) { NancyUser nUser = new NancyUser { UserName = user.Username }; return(nUser); } } return(null); }
public string HandleUserGet(DynamicDictionary _parameters) { OpenFormGraphManager manager = new OpenFormGraphManager(); User jUser = AuthHelper.ValidateToken(manager, Request); if (jUser != null && jUser.IsUserAdmin) { string sGuid = _parameters["Guid"]; Guid userGuid; if (Guid.TryParse(sGuid, out userGuid)) { TGUser user = manager.GetUser(userGuid); User jOtherUser = new User(user); return(JsonConvert.SerializeObject(jOtherUser)); } } return(null); }
public string HandleUserAddPost(DynamicDictionary _parameters) { OpenFormGraphManager manager = new OpenFormGraphManager(); BaseResult result = new BaseResult(); User jUser = AuthHelper.ValidateToken(manager, Request); if (jUser != null && jUser.IsUserAdmin) { string json = ReadBody(); NewUser jNewUser = JsonConvert.DeserializeObject <NewUser>(json); if (jNewUser != null) { jNewUser.Guid = Guid.NewGuid(); TGUser testUser = manager.GetUser(jNewUser.Username); if (testUser == null) { TGUser newUser = new TGUser { FamilyName = jNewUser.LastName, GivenName = jNewUser.FirstName, EmailAddress = jNewUser.EmailAddress, IsVerified = true, DisplayName = jNewUser.Username, Username = jNewUser.Username }; manager.Persist(newUser); TGUserPassword userPassword = TGUserPassword.GetNew(newUser.Guid, newUser.Username, jNewUser.Password); manager.Persist(userPassword); //Add Admin Roles as required if (jNewUser.IsUserAdmin) { TGUserRole userAdminRole = new TGUserRole { Active = true, ParentGuid = newUser.Guid, Name = UserRoles.UserAdmin }; manager.Persist(userAdminRole); } if (jNewUser.IsDataAdmin) { TGUserRole dataAdminRole = new TGUserRole { Active = true, ParentGuid = newUser.Guid, Name = UserRoles.DataAdmin }; manager.Persist(dataAdminRole); } result.Result = "Success"; } else { result.Result = "UsernameNotAvailable"; } } } return(JsonConvert.SerializeObject(result)); }
public static LoginResult Authorize(OpenFormGraphManager _manager, string _username, string _password, out TGUser _user) { LoginResult result = new LoginResult(); _user = _manager.GetUser(_username); if (_user != null) { if (_user.Active) { if (_manager.ValidateUser(_user, _password)) { string token = _manager.GetAuthorizationToken(_user.Guid, _password); result.Result = "Success"; result.AuthToken = token; result.Username = _username; if (_manager.HasUserRole(_user.Guid, UserRoles.UserAdmin)) { result.IsUserAdmin = true; } else { result.IsUserAdmin = false; } if (_manager.HasUserRole(_user.Guid, UserRoles.DataAdmin)) { result.IsDataAdmin = true; } else { result.IsDataAdmin = false; } } else { //Bad password or username TraceFileHelper.Warning("User not found"); _user = null; result.Result = "BadUserOrPassword"; } } else { //user not active //Todo - Log Something TraceFileHelper.Warning("User Not Active"); _user = null; result.Result = "NotActive"; } } else { //User not found TraceFileHelper.Warning("User not found"); result.Result = "BadUserOrPassword"; } return(result); }
public static string Authorize(string _username, string _password, out TGUser _user) { LoginResult result = new LoginResult(); OpenFormGraphManager manager = new OpenFormGraphManager(); _user = manager.GetUser(_username); if (_user != null) { if (_user.IsVerified) { if (_user.Active) { if (manager.ValidateUser(_user, _password)) { TGUserAuthorization authorization = TGUserAuthorization.GetNew(_user.Guid, "unknown"); manager.Persist(authorization); result.Result = "Success"; result.AuthToken = authorization.AuthorizationToken; result.DisplayName = _user.DisplayName; result.Username = _user.Username; } TGEula eula = manager.GetLatestEula(); if (eula != null) { TGEulaAgreement agreement = manager.GetEulaAgreement(_user.Guid, eula.Guid); if (agreement == null) { result.NeedsEula = "True"; result.EulaGuid = eula.Guid.ToString(); result.EulaText = eula.Text; _user.EulaAccepted = false; manager.Persist(_user); } else { result.NeedsEula = "False"; } } else { //Bad password or username manager.LogWarning(Guid.Empty, "User not found"); _user = null; result.Result = "BadUserOrPassword"; } } else { //user not active //Todo - Log Something manager.LogWarning(_user.Guid, "User Not Active"); _user = null; result.Result = "NotActive"; } } else { //User not verified //Todo - Log Something manager.LogWarning(_user.Guid, "User not verified"); _user = null; result.Result = "NotVerified"; } } else { //User not found manager.LogWarning(Guid.Empty, "User not found"); result.Result = "BadUserOrPassword"; } return(JsonConvert.SerializeObject(result)); }
public AppModule() { Get["/"] = _parameters => { return(View["index.sshtml"]); }; Get["/dev/BuildDB"] = _parameters => { bool devMode = Config.GetBooleanValue("DevMode", false); if (devMode) { OpenFormGraphStructureManager structureManager = new OpenFormGraphStructureManager(); structureManager.BuildDB(); return(View["dev_dbbuildresult.sshtml"]); } return(null); }; Get["/dev/BuildAdminUser"] = _parameters => { bool devMode = Config.GetBooleanValue("DevMode", false); if (devMode) { OpenFormGraphManager manager = new OpenFormGraphManager(); TGUser user = manager.GetUser("OFGAdmin"); if (user == null) { user = new TGUser { Username = "******", GivenName = "Admin", FamilyName = "User" }; manager.Persist(user); string password = RandomString.GetRandomString(10); TGUserPassword tgPassword = TGUserPassword.GetNew(user.Guid, user.Username, password); manager.Persist(tgPassword); TGUserRole userAdminRole = new TGUserRole { Active = true, Name = UserRoles.UserAdmin, ParentGuid = user.Guid }; manager.Persist(userAdminRole); TGUserRole dataAdminRole = new TGUserRole { Active = true, Name = UserRoles.DataAdmin, ParentGuid = user.Guid }; manager.Persist(dataAdminRole); JsonObjects.NewUser jNewUser = new NewUser(user, password); return(View["dev_buildadminuserresult.sshtml", jNewUser]); } } return(null); }; }