public static AddSuserResult AddSuser(string suser, string pwd) { Suser suserObject; bool registered; string pwdHash = Suser.SecurePassword(pwd); if (!Suser.IsSuserNameAllowed(suser)) { return(AddSuserResult.HasNotAllowedChar); } if (suser.Length < 3 || suser.Length > 32) { return(AddSuserResult.TooLongOrShort); } suserObject = new Suser(0, suser, pwdHash); if (SozlukDataStore.AddSuser(suserObject, out registered)) { if (!registered) { return(AddSuserResult.TakenBefore); } } else { return(AddSuserResult.BadLuck); } return(AddSuserResult.Joined); }
public override bool Process() { Suser suserObj = null; string suser, pwd; suser = GetValue <string>("Suser"); pwd = GetValue <string>("Pass", false); if (!Suser.IsSuserNameAllowed(suser)) { PushResponseItem("AuthStatus", "AuthFailed"); return(true); } if (suser != null && pwd != null) { suserObj = SozlukDataStore.GetSuser(suser); } if (suserObj != null && suserObj.ValidatePassword(pwd)) { PushResponseItem("AuthStatus", "AuthSuccess"); } else { PushResponseItem("AuthStatus", "AuthFailed"); } return(true); }
public static bool AddSuser(Suser suser, out bool registered) { bool result; registered = false; if (GetSuser(suser.SuserName) != null) { return(true); } SqlServerIo sql = SqlServerIo.Create(); if (!sql.Ready) { return(false); } result = sql.Execute( true, ADD_SUSER_SQL, suser.SuserName, suser.PasswordHash, "*****@*****.**" ); if (result) { registered = sql.RecordCount > 0; } SqlServerIo.Release(sql); return(result); }
public static Suser GetSuser(string suser) { string query = string.Format(GET_SUSER_SQL, suser.Trim().ToLower()); Suser suserObject = null; if (!CacheManager.TryGetCachedQueryResult <Suser>(query, out suserObject)) { SqlServerIo sql = SqlServerIo.Create(); if (sql.Execute(false, query)) { if (sql.Read()) { suserObject = new Suser( 0, sql.GetValueOfColumn <string>("Suser"), sql.GetValueOfColumn <string>("Password") ); } } SqlServerIo.Release(sql); } return(suserObject); }
private void HandleSearch() { bool noDate; int pageNum = GetValue <int>("pagenum"); string pagerHash = GetValue <string>("ph"); string term = GetValue <string>("term"); string suser = GetValue <string>("suser"); DateTime beginDate = GetValue <DateTime>("date"); DateTime endDate = GetValue <DateTime>("todate"); noDate = beginDate == DateTime.MinValue; if (noDate) { endDate = DateTime.MinValue; //no date } else if (endDate == DateTime.MinValue) { //begin set but end not. so assume the end to the today like sozluk-cgi does endDate = DateTime.Now; if (beginDate > endDate) { //We are damn sure that there will be no record :P PushResponseItem("LogicalEntryCount", 0); return; } } if (!string.IsNullOrEmpty(suser) && !Suser.IsSuserNameAllowed(suser)) { PushResponseItem("LogicalEntryCount", 0); return; } if (!string.IsNullOrEmpty(pagerHash) && IsValidPagerHash(pagerHash)) { PushResponseItem("LogicalEntryCount", 0); return; } if (!string.IsNullOrEmpty(term)) { term = NormalizeTerm(term); } if (pageNum > 0) { pageNum--; } SearchAndIndexQueryResult result; result = SozlukDataStore.FetchBasliksUsingSearch( false, term, suser, beginDate, endDate, pageNum, pagerHash, noDate); if (result.HasEntry) { PushResponseItem("TotalRecordCount", result.TotalRecordCount); PushResponseItem("LogicalEntryCount", result.LogicalRecordCount); PushResponseItem("PhysicalEntryCount", result.PhysicalRecordCount); PushResponseItem("TotalPageCount", SozlukDataStore.CalcPageCount(result.TotalRecordCount, RecordPerPageType.Basliks)); PushResponseItem("CurrentPageNum", pageNum + 1); if (!string.IsNullOrEmpty(result.PagerHash)) { PushResponseItem("PagerHash", result.PagerHash); } foreach (var entry in result.Entries) { PushResponseContent(entry.GetTransportString()); } result.Entries.Clear(); result.Entries = null; } else { PushResponseItem("LogicalEntryCount", 0); } }