bool ChangeCurrentUserPassword(string currentPassword, string newPassword) { Model.Common.ArchiveCommonDataClassesDataContext sdc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString); int count = sdc.Users.Where(t => t.Code == Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().Code&& t.Password == HashData(currentPassword)).Count(); if (count == 0) { return(false); } try { Model.Common.User member = sdc.Users.Where(t => t.Code == Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().Code).Select(t => t).Single(); member.Password = HashData(newPassword); Setting.User.ThisProgram.AddLog(sdc, Setting.User.UserOparatesPlaceNames.تغییر_رمز_عبور, Setting.User.UserOparatesNames.ویرایش, null, ": تغییر رمز عبور توسط '" + Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().FullName + "'"); sdc.SubmitChanges(); } catch (Exception ex) { PersianMessageBox.Show(this, "خطا در ثبت اطلاعات" + "\r\n\r\n" + ex.Message); return(false); } return(true); }
private void btnOK_Click(object sender, EventArgs e) { Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString); //ابتدا تمامی سطوح دسترسی قبلی کاربر را پاک تمامی کنیم foreach (var item in dc.PermissionDossiers.Where(q => q.PK_User == Convert.ToInt32(cmUsers.SelectedValue) && q.PK_Archive == Setting.Archive.ThisProgram.SelectedArchiveTree.ArchiveID)) { this.DataAccess.DeleteObject(item); } //سطح دسترسی جدید کاربر را وارد می کنیم foreach (DataRowView checkedItem in cblTitle.CheckedItems) { Model.Common.PermissionDossier df = new Model.Common.PermissionDossier(); df.PK_Archive = Convert.ToInt32(Setting.Archive.ThisProgram.SelectedArchiveTree.ArchiveID); df.PK_User = Convert.ToInt32(cmUsers.SelectedValue); df.DossierType = Convert.ToInt32(checkedItem[cblTitle.ValueMember].ToString()); this.DataAccess.InsertObject(df); } Model.Common.User member = dc.Users.Where(t => t.Code == Convert.ToInt32(cmUsers.SelectedValue)).Single(); Setting.User.ThisProgram.AddLog(dc, Setting.User.UserOparatesPlaceNames.سطح_دسترسی, Setting.User.UserOparatesNames.ویرایش, null, "تنطیم سطح دسترسی کاربر : " + member.FullName + " در سطح پرونده توسط : " + Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().FullName + "'"); MessageBox.Show("سطح دسترسی " + "'" + member.FullName + "'ویرایش شد."); }
//internal void StartCheckLock() //{ // System.ComponentModel.BackgroundWorker backgroundWorker = new BackgroundWorker(); // backgroundWorker.DoWork += backgroundWorker_DoWork; // backgroundWorker.RunWorkerCompleted += backgroundWorker_RunWorkerCompleted; // backgroundWorker.RunWorkerAsync(); //} //private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) //{ // CheckLock(); //} //private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) //{ // if (e.Error != null) // { // if (e.Error is Njit.Common.CheckLockException) // { // PersianMessageBox.Show(this, "خطا" + "\r\n" + e.Error.Message); // Setting.Program.ThisProgram.ShowExitDialog = false; // this.Close(); // return; // } // else // { // PersianMessageBox.Show(this, "خطا در بررسی قفل سخت افزاری"); // Setting.Program.ThisProgram.ShowExitDialog = false; // this.Close(); // return; // } // } // else if (e.Cancelled) // { // PersianMessageBox.Show(this, "خطا در بررسی قفل سخت افزاری"); // Setting.Program.ThisProgram.ShowExitDialog = false; // this.Close(); // return; // } //} //private void CheckLock() //{ // string fileName = "Tiny.ocx"; // if (!System.IO.File.Exists(fileName)) // fileName = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Application.ExecutablePath), "Tiny.ocx"); // if (!System.IO.File.Exists(fileName)) // throw new Njit.Common.CheckLockException(-1000); // Njit.Common.CryptoService.MD5CryptoService md5 = new Njit.Common.CryptoService.MD5CryptoService(); // //if (md5.GetFileMD5(fileName) != "TJKM9pyOg+//raCCvG2UNw==") // // throw new Njit.Common.CheckLockException(-1001); // TINYLib.TinyPlusCtrl tiny = new TINYLib.TinyPlusCtrl(); // short errorCode = 0; // if (Njit.Common.PublicMethods.ServerIsLocal(Setting.Sql.ThisProgram.LockServer)) // { // errorCode = tiny.FindFirstTPlus("6D2F77838D67E3BCC7C3261C737B9FF", "0F53C9F493D977FBA6453434FE9DB895D75F7A0FC33BF180AFEE569CBB4AAFD75D780B92CA40537EF068AEB15CBBE3697827", "AF4F19087B09B94B648D9E3EC0EB223C8C1A13308DCD8F68597F1F5D4C43737BC93417783EBEE91E9569EBD841258B17CCB1"); // } // else // { // errorCode = tiny.FindNetTPlus(Setting.Sql.ThisProgram.LockServer, "6D2F77838D67E3BCC7C3261C737B9FF"); // } // if (errorCode != 0) // throw new Njit.Common.CheckLockException(errorCode); // string[] request = new string[20] { "E81E98ABBAA0A842610C", "1666C4E3F2EE469CAF4A", "5F370D283B9547B75265", "1747C5D4F3054B33DEE1", "EF479DAC4BCB41F98A9D", "CD43FB8AA998E8627510", "9B13BD58075AD20837D2", "59A91718C7BAE2687B26", "B2CE60730296C6445772", "F767A5B453CF33E18CAB", "4C446E0D1CEA46984756", "E74F95B05FE53595A443", "2252D0FF9A3961E9F8A7", "1B4FCBDAF92C50DAF988", "D43E84A34E9D57BF5A79", "BFE76D7C0F8C50BA596A", "DD578BB655423A70032E", "3048D2F19C786C36D5E4", "7AE2283BE648F8060934", "204CC2E1F0F377A14C5F" }; // string[] response = new string[20] { "72E8724B644747352003", "954DF7E2D97F2F5D5843", "AE1E103B3230065E0940", "C2FA849BBEB5FBFB98B9", "5ECE80B7E2D95BDB3247", "199717F0D54F871514F7", "7202A0CB2624B4E2DFCC", "FC74BED39E4484021BD8", "5C883A33EC15ED776E59", "A21A647B1E99C57F7455", "6B6B59C4BB7420722F48", "920254772A94EC546B0E", "EC048AA7548B3BCBE40D", "67A32740258460DEC740", "D77537227D70BE9EC9F4", "8E6EF0E71E2460FE675E", "29ABE7DCC10CDC2AE300", "B727A590731125E78EC5", "0484C2DB980199D7DAF5", "C72BB5A0977D093F3449" }; // Random r = new Random((int)DateTime.Now.Ticks); // int i = r.Next(20); // if (tiny.GetTPlusQuery(request[i]) != response[i]) // throw new Njit.Common.CheckLockException(-1); // string spid = tiny.GetTPlusData(TINYLib.EnumTPlusData.TPLUS_SPECIALID); // if (spid != "SAM@MOJ!15153030") // throw new Njit.Common.CheckLockException(-1003); // string data = tiny.GetTPlusData(TINYLib.EnumTPlusData.TPLUS_DATAPARTITION); // string exDate = Njit.Common.PublicMethods.GetStringData(data, "exd:", ';'); // if (!string.IsNullOrEmpty(exDate)) // { // TimeSpan timeSpan = Njit.Common.PersianCalendar.ToDateTime(exDate).Subtract(DateTime.Now); // if (timeSpan.TotalDays <= 0) // throw new Njit.Common.CheckLockException(-1002); // } // //else if (string.IsNullOrEmpty(exDate)) // // throw new Njit.Common.CheckLockException(-1002); //} protected override void OnFormClosed(FormClosedEventArgs e) { base.OnFormClosed(e); if (Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>() != null) { Setting.User.ThisProgram.AddLog(Setting.User.UserOparatesPlaceNames.None, Setting.User.UserOparatesNames.خروج_از_برنامه, null, null); Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString); Model.Common.User membership = dc.Users.Where(t => t.Code == Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().Code).Single(); membership.isLogin = false; membership.IPAddress = Setting.Program.GetMacAddress().ToString(); dc.SubmitChanges(); } try { Setting.Program.ThisProgram.SetLastRunDate(); } catch (Exception ex) { PersianMessageBox.Show(this, "خطا در ذخیره تنظیمات" + "\r\n\r\n" + ex.Message); } }
private void btnImportFiles_Click(object sender, EventArgs e) { Model.Common.User currentUser = Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>(); if (currentUser != null) { if (IsMembershipInAdministartorRole(currentUser)) { using (View.ArchiverDocumentManagement f = new ArchiverDocumentManagement(PersonnelNumberTextBox.Text, 0)) { f.ShowDialog(); SetDossierDocumentsCount(PersonnelNumberTextBox.Text); } } else if (Setting.User.ThisProgram.CheckUserAccessPermission(currentUser, "ArchiverDocumentManagement", null)) { using (View.ArchiverDocumentManagement f = new ArchiverDocumentManagement(PersonnelNumberTextBox.Text, 0)) { f.ShowDialog(); SetDossierDocumentsCount(PersonnelNumberTextBox.Text); } } } }
private void radGridViewAll_KeyUp(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { if (GetSelectedDossier(radGridViewAll) == null) { return; } Model.Common.User currentUser = Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>(); if (currentUser != null) { if (IsMembershipInAdministartorRole(currentUser)) { using (View.ArchiverDocumentManagement f = new ArchiverDocumentManagement(GetSelectedDossier(radGridViewAll), 0)) { f.ShowDialog(); } } else if (Setting.User.ThisProgram.CheckUserAccessPermission(currentUser, "ArchiverDocumentManagement", null)) { using (View.ArchiverDocumentManagement f = new ArchiverDocumentManagement(GetSelectedDossier(radGridViewAll), 0)) { f.ShowDialog(); } } else if (Setting.User.ThisProgram.CheckUserAccessPermission(currentUser, "ArchiveDocumentShow", null)) { using (View.ArchiveDocumentShow f = new ArchiveDocumentShow(GetSelectedDossier(radGridViewAll), 0)) { f.ShowDialog(this); } } } } }
public void SaveAndReload(NjitSoftware.Model.Common.UserSetting instance) { try { var dc = NjitSoftware.Model.Common.ArchiveCommonDataClassesDataContext.GetNewInstance(); Model.Common.User currentUser = this.GetCurrentUser <Model.Common.User>(); var query = dc.UserSettings.Where(t => t.UserCode == currentUser.Code).Select(t => t); if (query.Count() > 0) { NjitSoftware.Model.Common.UserSetting original = query.First(); NjitSoftware.Model.Common.UserSetting.Copy(original, instance); } else { NjitSoftware.Model.Common.UserSetting.Insert(dc, instance); } dc.SubmitChanges(); } catch (Exception ex) { throw new Exception("خطا در ذخیره تنظیمات" + "\r\n\r\n" + ex.Message); } Load(); }
internal bool IsMembershipInAdministartorRole(Model.Common.User membership) { string roleCode = this.HashData(membership.Code.ToString() + (1).ToString()); return(membership.RoleCode == roleCode); }
private void radGridViewExtended1_DoubleClick(object sender, EventArgs e) { string PessonelNumber = ""; int ID = 0; foreach (Telerik.WinControls.UI.GridViewRowInfo item in radGridViewExtended1.SelectedRows) { PessonelNumber = item.Cells[1].Value.ToString(); try { ID = Convert.ToInt32(item.Cells[0].Value.ToString()); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } } if (PessonelNumber != "") { var dialogResult = PersianMessageBox.Show(this, "مایل به مشاهده پرونده : " + PessonelNumber + " هستید؟", "تایید ", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); if (dialogResult == System.Windows.Forms.DialogResult.Yes) { Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString); var df = dc.DocumentsFailures.Where(q => q.ID == ID).FirstOrDefault(); if (df != null) { df.isRead = true; df.DateChecker = System.DateTime.Now; df.Userchecker = Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().Code; dc.SubmitChanges(); } else { return; } Model.Common.User currentUser = Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>(); if (currentUser != null) { if (IsMembershipInAdministartorRole(currentUser)) { using (View.ArchiverDocumentManagement f = new ArchiverDocumentManagement(PessonelNumber, 0)) { f.ShowDialog(); } } else if (Setting.User.ThisProgram.CheckUserAccessPermission(currentUser, "ArchiverDocumentManagement", null)) { using (View.ArchiverDocumentManagement f = new ArchiverDocumentManagement(PessonelNumber, 0)) { f.ShowDialog(); } } else if (Setting.User.ThisProgram.CheckUserAccessPermission(currentUser, "ArchiveDocumentShow", null)) { using (View.ArchiveDocumentShow f = new ArchiveDocumentShow(PessonelNumber, 0)) { f.ShowDialog(); } } } } } }
internal string GetStateCodeHash(Model.Common.User member, int stateCode) { return(this.HashData(member.Code.ToString() + stateCode.ToString())); }
public override bool Login() { List <string> list = new List <string>(); list.Add(View.Main.Instance.Name); if (!View.SplashScreen.InstanceIsNull) { list.Add(View.SplashScreen.Instance.Name); } //list.Add(UI.SelectArchive.Instance.Name); this.CloseForms(list.ToArray()); System.Windows.Forms.DialogResult result; using (View.Login login = new View.Login()) { result = login.ShowDialog(); } if (result == System.Windows.Forms.DialogResult.OK) { Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString); Model.Common.User membership = dc.Users.Where(t => t.Code == Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>().Code).Single(); membership.LastLogin = DateTime.Now; if (membership.isGuest) { try { DateTime Expire = Convert.ToDateTime(membership.Expire); DateTime Today = ConvertTo_PersianOREnglish_Date.GetEglishDate(DataAccess.CommonDataAccess.GetNewInstance().Connection.GetServerPersianDate()); if (Today >= Expire) { membership.Visible = Options.SettingInitializer.GetUserSetting().HashData(membership.Code.ToString() + (int)Njit.Program.Setting.UserSetting.UserStates.Inactive); dc.SubmitChanges(); MessageBox.Show("تاریخ انقضا پنل کاربری شما به اتمام رسیده است."); Logout(); } } catch { MessageBox.Show("تاریخ انقضا پنل کاربری شما در سیستم درست وارد نشده است. به مدیر سیستم اطلاع داده تا تاریخ انقضا پنل کاربریتان را تغییر بدهد. "); } } //اگر ادمین باشد نیازی نیست if (!Setting.User.ThisProgram.IsMembershipInAdministartorRole(Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>())) { if (membership.isLogin == true && membership.IPAddress == null) { MessageBox.Show(" با اطلاعات وارد شده یک کاربر دیگر وجود دارد در غیر اینصورت از مدیر سیستم بخواهید تا اطلاعات شما را ویرایش کند."); Logout(); } if (membership.isLogin == true && membership.IPAddress != Setting.Program.GetMacAddress().ToString()) { MessageBox.Show(" با اطلاعات وارد شده یک کاربر دیگر وجود دارد در غیر اینصورت از مدیر سیستم بخواهید تا اطلاعات شما را ویرایش کند."); Logout(); } } membership.IPAddress = Setting.Program.GetMacAddress().ToString(); membership.isLogin = true; dc.SubmitChanges(); AddLog(dc, UserOparatesPlaceNames.None, UserOparatesNames.ورود_به_سیستم, null, null); if (View.SelectArchive.Instance.Visible == false) { View.SelectArchive.Instance.Show(View.Main.Instance); } this.Load(); //View.Main.Instance.StartCheckLock(); return(true); } return(false); }
internal bool IsMembershipActive(Model.Common.User membership) { string activeCode = this.HashData(membership.Code.ToString() + ((int)Setting.User.UserStates.Active).ToString()); return(membership.StateCode == activeCode); }
private Model.Common.UserSetting GetDefaultUserSetting() { Model.Common.User currentUser = this.GetCurrentUser <Model.Common.User>(); return(Model.Common.UserSetting.GetNewInstance(currentUser == null ? -1 : currentUser.Code, 200)); }
private void SaveInformation() { try { Cursor.Current = Cursors.WaitCursor; Model.Archive.ArchiveDataClassesDataContext dc = Model.Archive.ArchiveDataClassesDataContext.GetNewInstance(); Njit.Common.SystemUtility sysUtil; try { sysUtil = Njit.Program.Options.GetSystemUtility(dc.Connection as System.Data.SqlClient.SqlConnection, Setting.Program.ThisProgram.NetworkName, Setting.Program.ThisProgram.NetworkPort); } catch (Exception ex) { throw new Exception("خطا در اتصال به سرور" + "\r\n" + ex.Message); } if (Setting.Archive.ThisProgram.LoadedArchiveSettings.UseDatabase == false && !sysUtil.DirectoryExists(Setting.Archive.ThisProgram.LoadedArchiveSettings.DocumentsPathOrDatabaseName)) { throw new Exception("مسیر ذخیره اسناد نامعتبر است\r\nلطفا در قسمت تنظیمات برنامه مسیر ذخیره اسناد را انتخاب کنید" + "\r\n" + Setting.Archive.ThisProgram.LoadedArchiveSettings.DocumentsPathOrDatabaseName); } List <Model.Archive.ArchiveTab> archiveTabs = Controller.Archive.ArchiveTabController.GetActiveDossierTabs(); Model.Archive.Dossier dossier = Model.Archive.Dossier.GetNewInstance(PersonnelNumberTextBox.Text, imageData.IsNullOrEmpty() ? null : new System.Data.Linq.Binary(imageData), Setting.Archive.ThisProgram.LoadedArchiveSettings.UseDatabase ? Setting.Archive.ThisProgram.LoadedArchiveSettings.DocumentsPathOrDatabaseName : Path.Combine(Setting.Archive.ThisProgram.LoadedArchiveSettings.DocumentsPathOrDatabaseName, Njit.Common.PublicMethods.ReplaceInvalidPathAndFileNameChars(PersonnelNumberTextBox.Text, "-")), int.Parse((dossierTypeComboBoxExtended.SelectedItem as Njit.Program.Controls.ComboBoxExtended.CustomItem).Value.ToString())); List <System.Data.SqlClient.SqlCommand> sqlCommandList = new List <System.Data.SqlClient.SqlCommand>(); foreach (Model.Archive.ArchiveTab item in archiveTabs) { List <System.Data.SqlClient.SqlCommand> sqlCommand = SqlHelper.GetDossierInsertCommands(tabControlExtended.TabPages[item.Name], item, PersonnelNumberTextBox.Text); sqlCommandList.AddRange(sqlCommand); } //--------------- ذخیره اطلاعات تماس و آدرس List <Model.Archive.ContactView> contactView = new List <Model.Archive.ContactView>(); List <Model.Archive.AddressView> addressView = new List <Model.Archive.AddressView>(); Model.Archive.Info info = null; if (Setting.Archive.ThisProgram.LoadedArchiveSettings.InfoGroupTab) { foreach (Model.Archive.ContactView item in contactViewBindingSource) { item.PersonnelNumber = PersonnelNumberTextBox.Text; contactView.Add(item); } foreach (Model.Archive.AddressView item in addressViewBindingSource) { item.PersonnelNumber = PersonnelNumberTextBox.Text; addressView.Add(item); } if (!(string.IsNullOrEmpty(txtComment.Text) && string.IsNullOrEmpty(txtEmail.Text) && string.IsNullOrEmpty(txtWebsite.Text))) { info = Model.Archive.Info.GetNewInstance(PersonnelNumberTextBox.Text, txtComment.Text, txtEmail.Text, txtWebsite.Text); } } Controller.Archive.DossierController.Insert(dossier, sqlCommandList, contactView, addressView, info); EnableOrDisableForm(false, false); var result = PersianMessageBox.Show(this, "اطلاعات پرونده با موفقیت ثبت گردید", "اطلاعات ثبت شد", new Njit.MessageBox.VDialogButton[] { new Njit.MessageBox.VDialogButton(Njit.MessageBox.VDialogResult.OK, "ثبت اسناد پرونده"), new Njit.MessageBox.VDialogButton(Njit.MessageBox.VDialogResult.Continue, "ثبت پرونده جدید"), new Njit.MessageBox.VDialogButton(Njit.MessageBox.VDialogResult.Cancel, "خروج") }, Njit.MessageBox.VDialogIcon.Question, Njit.MessageBox.VDialogDefaultButton.Button1, System.Windows.Forms.RightToLeft.Yes, false, null, null, null, null, null); if (result == Njit.MessageBox.VDialogResult.Cancel) { this.Close(); } else if (result == Njit.MessageBox.VDialogResult.Continue) { InvokeOnClick(btnNewDossier, EventArgs.Empty); } else if (result == Njit.MessageBox.VDialogResult.OK) { Model.Common.User currentUser = Setting.User.ThisProgram.GetCurrentUser <Model.Common.User>(); if (currentUser != null) { if (IsMembershipInAdministartorRole(currentUser)) { using (View.ArchiverDocumentManagement f = new ArchiverDocumentManagement(dossier.PersonnelNumber, 0)) { this.Close(); f.ShowDialog(); } } else if (Setting.User.ThisProgram.CheckUserAccessPermission(currentUser, "ArchiverDocumentManagement", null)) { using (View.ArchiverDocumentManagement f = new ArchiverDocumentManagement(dossier.PersonnelNumber, 0)) { this.Close(); f.ShowDialog(); } } else if (Setting.User.ThisProgram.CheckUserAccessPermission(currentUser, "ArchiveDocumentShow", null)) { using (View.ArchiveDocumentShow f = new ArchiveDocumentShow(dossier.PersonnelNumber, 0)) { this.Close(); f.ShowDialog(this); } } else { PersianMessageBox.Show("شما به صفحه اضافه کردن اسناد دسترسی ندارید"); } } } } catch (Exception ex) { PersianMessageBox.Show(ex.Message); return; } finally { Cursor.Current = Cursors.Default; } }