private List <TaskReportRecordModel> LoadDailyData(DateTime start, Account user) { // Initialization. List <TaskReportRecordModel> lst = new List <TaskReportRecordModel>(); try { DateTime end = start.AddDays(1); List <TaskReportRecordModel> dataList = (from wt in repository.Worktasks where ( (wt.CreationDate >= start && wt.CreationDate < end || wt.LastUpdateDateTime >= start && wt.LastUpdateDateTime < end) && (UserPermissionService.GetInstance().isManager(user.Role) || (UserPermissionService.GetInstance().isUser(user.Role) && user.UID == wt.Assignee)) ) orderby wt.TaskType select new TaskReportRecordModel() { TaskType = wt.TaskType, Title = wt.Title, AssigneeName = wt.AssigneeAcc.DisplayName2, Status = wt.Status, CreationDate = wt.CreationDate, LastUpdateDate = (wt.LastUpdateDateTime ?? wt.CreationDate) }).ToList <TaskReportRecordModel>(); return(dataList); } catch (Exception ex) { // info. Console.Write(ex); } // info. return(lst); }
protected void btnLogin_Click(object sender, EventArgs e) { if (ValidateLogin()) { User us = new UserService().GetUser(txtUsername.Value.ToString()); Session["username"] = us.UserName.ToString(); Session["userid"] = us.UserId; Session["usertype"] = us.UserType; List <UserPermission> pm = new UserPermissionService().GetUserPermissions(us.UserId, us.UserId); Session["Role"] = pm; new AuditLogService().AddAuditLog("LOGIN ATTEMPT", us.UserId, us.UserName, "Successfully Logged in", DateTime.Now); if (us.UserType == "Administrator" || us.UserType == "System") { Tutor st = new TutorService().GetTutor(Session["userid"].ToString()); Session["userfname"] = st.FNames != null?st.FNames.ToString() : "ComSoft"; if (us.DateCreated.Date >= us.LastModify.Date) { } else { Response.Redirect("~/home.aspx"); } } else if (us.UserType == "Tutor") { Tutor st = new TutorService().GetTutor(Session["userid"].ToString()); Session["userfname"] = st.FNames.ToString(); Response.Redirect("~/teachingstaffdashboard.aspx"); } else if (us.UserType == "Administrator & Tutor") { Tutor st = new TutorService().GetTutor(Session["userid"].ToString()); Session["userfname"] = st.FNames.ToString(); Response.Redirect("~/admintutordashboard.aspx"); } else if (us.UserType == "Student") { Student st = new StudentService().GetStudent(Session["userid"].ToString()); Session["userfname"] = st.FNames.ToString(); Response.Redirect("~/studentdashboard.aspx"); } else if (us.UserType == "Parent") { Response.Redirect("~/parentdashboard.aspx"); } } else { txtPassword.Focus(); txtUsername.Focus(); txtUsername.Style.Add("border-color", "red"); txtPassword.Style.Add("border-color", "red"); //UpdatePanelLogin.Update(); } }
/// <summary> /// Get all users based on filter criteria /// </summary> /// <param name="db">dataContext</param> /// <param name="ups">IUserPermissionService</param> /// <param name="activeOnly">if true, then return active only</param> /// <returns>IQueryable of User</returns> public static IQueryable <User> UsersByFilter(this DataContext db, UserPermissionService ups, bool activeOnly) { var query = db.RoleRestrictedUsers(ups); if (activeOnly) { query = query.Where(w => !w.AuditFields.InactiveDateTime.HasValue); } return(query); }
/// <summary> /// Get all General role restricted roles /// </summary> /// <param name="db">dataContext</param> /// <param name="ups">IUserPermissionService</param> /// <param name="viewOnly">if View only then entity change tracking is turned off</param> /// <returns>IQueryable of Role</returns> public static IQueryable <Role> RoleRestrictedRoles(this DataContext db, UserPermissionService ups, bool grantingRoles, bool viewOnly = true) { var query = ups.RoleRestrictRoles(db.Roles.AsQueryable(), grantingRoles, viewOnly); if (viewOnly) { query = query.AsNoTracking(); } return(query); }
/// <summary> /// Get all restricted users /// </summary> /// <param name="db">dataContext</param> /// <param name="ups">IUserPermissionService</param> /// <param name="viewOnly">if View only then entity change tracking is turned off</param> /// <returns>IQueryable of Launch</returns> public static IQueryable <Launch> RoleRestrictedLaunches(this DataContext db, UserPermissionService ups, bool viewOnly = true) { var query = ups.RoleRestrictLaunches(db.Launches.AsQueryable(), viewOnly); if (viewOnly) { query = query.AsNoTracking(); } return(query); }
public JsonResult SendDailyReport(string date) { try { if (null == date || date.Trim().Length == 0) { date = DateTime.Now.ToString("dd-MM-yyyy"); } string[] val = date.Split('-'); DateTime start = new DateTime(Convert.ToInt32(val[2]), Convert.ToInt32(val[1]), Convert.ToInt32(val[0])); Account[] lstAccount = accRepository.Accounts.ToArray(); foreach (Account item in lstAccount) { if ((!String.IsNullOrEmpty(item.Email)) && !UserPermissionService.GetInstance().isAdmin(item.Role)) { List <TaskReportRecordModel> data = this.LoadDailyData(start, item); List <TaskReportRecordModel> dataPrev = this.LoadTillThisTimeData(start); TaskDailyReport rp = new TaskDailyReport(start, item); rp.prepareReport(); string outputfile = rp.loadReportFile(data, dataPrev); if (outputfile.Length > 0) { string filename = Path.GetFileName(outputfile); MailMessage mail = new MailMessage(); SmtpClient smtpCLient = new SmtpClient(WebConfigurationManager.AppSettings["EmailReportServer"]); mail.From = new MailAddress(WebConfigurationManager.AppSettings["EmailReportFrom"], "No Reply"); mail.To.Add(item.Email); mail.Subject = "Báo cáo công văn ngày " + String.Format("{0:dd-MM-yyyy}", start); mail.Body = Path.GetFileNameWithoutExtension(outputfile); System.Net.Mail.Attachment attachment; attachment = new System.Net.Mail.Attachment(outputfile); mail.Attachments.Add(attachment); smtpCLient.Port = Convert.ToInt32(WebConfigurationManager.AppSettings["EmailReportPort"]); smtpCLient.Credentials = new System.Net.NetworkCredential(WebConfigurationManager.AppSettings["EmailReportFrom"], WebConfigurationManager.AppSettings["EmailReportPass"]); smtpCLient.EnableSsl = Convert.ToBoolean(WebConfigurationManager.AppSettings["EmailReportSSL"]); smtpCLient.Send(mail); smtpCLient.Dispose(); } } } } catch { } return(Json(new { message = "Đã tạo xong báo cáo ngày" }, JsonRequestBehavior.AllowGet)); }
public static IQueryable <User> RoleRestrictUsers(this UserPermissionService ups, IQueryable <User> query, bool viewOnly) { if (ups.UserClaimModel.IsAdmin) { /* do nothing */ } else { query = query.Where(w => w.UserId == ups.UserClaimModel.UserId); // They don't have access, filter them out. } return(query); }
public static IQueryable <Report> RoleRestrictReports(this UserPermissionService ups, IQueryable <Report> query, bool viewOnly) { if (!viewOnly) { query = query.Where(w => w.UserId == ups.UserClaimModel.UserId); } else { query = query.Where(w => w.UserId == ups.UserClaimModel.UserId || w.IsShared); } return(query); }
public static IQueryable <Role> RoleRestrictRoles(this UserPermissionService ups, IQueryable <Role> query, bool grantingRoles, bool viewOnly) { if (grantingRoles && ups.UserClaimModel.RoleData != null && ups.UserClaimModel.RoleData.GrantableRoleIds != null) { query = query.Where(w => ups.UserClaimModel.RoleData.GrantableRoleIds.Contains(w.RoleId)); } else if (grantingRoles || !viewOnly) { query = query.Where(w => false); } return(query.OrderBy(o => o.Level)); }
public static IQueryable <Launch> RoleRestrictLaunches(this UserPermissionService ups, IQueryable <Launch> query, bool viewOnly) { if (ups.UserClaimModel.IsAdmin) { /* do nothing */ } else { if (!viewOnly) { query = query.Where(w => w.Rocket !.UserId == ups.UserClaimModel.UserId); } } return(query); }
public DataContext CreateDbContext(string[] args) { //if (!System.Diagnostics.Debugger.IsAttached) System.Diagnostics.Debugger.Launch(); var builder = new DbContextOptionsBuilder<DataContext>(); string projectPath = AppDomain.CurrentDomain.BaseDirectory!.Split(new String[] { @"bin\" }, StringSplitOptions.None)[0]; IConfigurationRoot configBuilder = new ConfigurationBuilder() .SetBasePath(projectPath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddUserSecrets(Assembly.GetExecutingAssembly()) .Build(); builder.UseSqlServer(configBuilder.GetConnectionString("DefaultConnection")); var ups = new UserPermissionService(); ups.Setup(new UserClaimModel()); return new DataContext(ups, builder.Options, null); }
/// <summary> /// Sets up the data context and UserPermissionService for the service and all services injected in the service /// </summary> /// <param name="dataContext">data context</param> /// <param name="userPermissionService">UserPermissionService</param> public void SetupService(DataContext dataContext, ILoggingContext loggingDb, UserPermissionService userPermissionService) { db = dataContext; LoggingDb = loggingDb; UserPermissionService = userPermissionService; // go through all fields, if any of them are a BaseService Setup DB and UPS BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly; var fields = this.GetType().UnderlyingSystemType.GetFields(flags).Where(w => w.FieldType.BaseType == typeof(BaseService)).ToList(); foreach (var item in fields) { var baseService = (item.GetValue(this) as BaseService); baseService?.SetupService(db, LoggingDb, UserPermissionService); } }
/// <summary> /// Services that the system uses that are added /// </summary> private void DeveloperAddedServices(IServiceCollection services) { services.Configure<Services.Email.MailSettings>(Configuration.GetSection(nameof(Services.Email.MailSettings))); services.AddTransient<Services.Email.IEmailer, Services.Email.Emailer>(); services.AddScoped<UserPermissionService>((s) => { var contextAccessor = s.GetService<IHttpContextAccessor>(); //string ipAddress = "N/A"; //if (contextAccessor.HttpContext != null) //{ // if (contextAccessor.HttpContext.Connection.RemoteIpAddress.IsIPv4MappedToIPv6) // ipAddress = contextAccessor.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(); // else // ipAddress = contextAccessor.HttpContext.Connection.RemoteIpAddress.MapToIPv6().ToString(); //} var ups = new UserPermissionService(); ups.Setup(new UserClaimBuilder(contextAccessor!.HttpContext?.User)); return ups; }); var dbConnection = Configuration.GetConnectionString("DefaultConnection"); services.AddDbContext<DataContext>(options => options.UseSqlServer(dbConnection)); services.AddDbContext<ILoggingContext, DataContext>(options => options.UseSqlServer(dbConnection)); //services.Configure<ReCAPTCHASettings>(Configuration.GetSection(nameof(ReCAPTCHASettings))); services.AddTransient<RocketLaunchJournal.Infrastructure.Services.Templates.Emails.EmailsCreate>(); services.AddTransient<RocketLaunchJournal.Infrastructure.Services.Launches.LaunchesCreateUpdate>(); services.AddTransient<RocketLaunchJournal.Infrastructure.Services.Launches.LaunchesGet>(); services.AddTransient<RocketLaunchJournal.Infrastructure.Services.Logs.APILogsCreateUpdate>(); services.AddTransient<RocketLaunchJournal.Infrastructure.Services.Logs.SystemLogsCreate>(); services.AddTransient<RocketLaunchJournal.Infrastructure.Services.Rockets.RocketsCreateUpdate>(); services.AddTransient<RocketLaunchJournal.Infrastructure.Services.Rockets.RocketsGet>(); services.AddTransient<RocketLaunchJournal.Infrastructure.Services.Adhoc.AdhocCreateUpdate>(); services.AddTransient<RocketLaunchJournal.Infrastructure.Services.Adhoc.AdhocGet>(); services.AddTransient<UsersCreateUpdate>(); services.AddTransient<UsersGet>(); }
public DataContext(UserPermissionService ups, DbContextOptions <DataContext> options, ILogger <DataContext>?logger) : base(options) { _userPermissionService = ups; _logger = logger; }
async static Task Main(string[] args) { System.Console.WriteLine("Seeder Started..."); System.Console.WriteLine("Type: "); System.Console.WriteLine(" 1 - \"enum\" to seed enum values."); System.Console.WriteLine(" 2 - \"rcu\" to seed roles and users data."); System.Console.WriteLine(" 3 - to seed rockets/launches."); var builder = new DbContextOptionsBuilder <DataContext>(); string projectPath = AppDomain.CurrentDomain.BaseDirectory !.Split(new String[] { @"bin\" }, StringSplitOptions.None)[0]; IConfigurationRoot configBuilder = new ConfigurationBuilder() .SetBasePath(projectPath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddUserSecrets(typeof(Program).Assembly) .Build(); builder.UseSqlServer(configBuilder.GetConnectionString("DefaultConnection")); var ups = new UserPermissionService(); ups.Setup(new UserClaimBuilderTester()); var context = new DataContext(ups, builder.Options, null); SeedBase?seeder = null; while (true) { var command = System.Console.ReadLine(); switch (command.ToLower()) { case "1": case "enum": seeder = new SeedEnums(context); await seeder.Seed(); System.Console.WriteLine("Seed complete"); break; case "2": case "rcu": seeder = new SeedRolesUsers(context); await seeder.Seed(); System.Console.WriteLine("Seed complete"); break; case "3": seeder = new SeedRocketsLaunches(context); await seeder.Seed(); System.Console.WriteLine("Seed complete"); break; default: System.Console.WriteLine("bye"); return; } } }
public async Task Invoke(HttpContext context, SystemLogsCreate systemLogsCreate, DataContext spudContext, ILoggingContext loggingDb, UserPermissionService userPermissionService) { try { await _next.Invoke(context); } catch (Exception ex) { systemLogsCreate.SetupService(spudContext, loggingDb, userPermissionService); await HandleExceptionAsync(context, ex, systemLogsCreate); } }
protected override void OnInitialize() { _service = new UserPermissionService(Database, UserService); }
public UserPermissionController() { this.userPermissionService = new UserPermissionService(); }
/// <summary> /// constructor /// </summary> /// <param name="apiLogsCreateUpdate"></param> /// <param name="db"></param> /// <param name="loggingDb"></param> /// <param name="userPermissionService"></param> public LogRequestResponseFilter(APILogsCreateUpdate apiLogsCreateUpdate, DataContext db, ILoggingContext loggingDb, UserPermissionService userPermissionService) { apiLogsCreateUpdate.SetupService(db, loggingDb, userPermissionService); _apiLogsCreateUpdate = apiLogsCreateUpdate; }