Ejemplo n.º 1
0
        public ActionResult DeleteConfirmed(int id)
        {
            try
            {
                using (var ctx = new SaasDbContext())
                {
                    //Get tenant from db
                    Tenant tenant = ctx.Tenants.Find(id);
                    ctx.Tenants.Remove(tenant);
                    ctx.SaveChanges();
                }

                // Create the breadcrumb
                var breadcrumb = new List <BreadcrumbItemViewModel>();
                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Tenants",
                    Link = "/Tenants"
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Delete Confirm"
                });

                ViewBag.Breadcrumb = breadcrumb;
            }

            catch (Exception ex)
            {
                LogService.Info("Tenants not found", ex.Message, ex.InnerException);
            }
            return(RedirectToAction("Index"));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            try
            {
                using (var ctx = new SaasDbContext())
                {
                    //Get application from db
                    Application application = ctx.Applications.Find(id);

                    if (application.TenantId == CurrentTenant.TenantId || User.IsInRole("SystemAdministrator"))
                    {
                        if (ModelState.IsValid)
                        {
                            // Remove application from db
                            ctx.Applications.Remove(application);
                            ctx.SaveChanges();
                            return(RedirectToAction("Index"));
                        }
                    }
                    else
                    {
                        return(View("Authorize"));
                    }
                }
            }

            catch (Exception ex)
            {
                LogService.Info("Applications not found", ex.Message, ex.InnerException);
            }

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 3
0
        public ActionResult Index()
        {
            // Create the model
            var model = new TenantListViewModel();

            try
            {
                using (var ctx = new SaasDbContext())
                {
                    // Get tenants from the db
                    var tenants = ctx.Tenants.Include("Applications").ToList();

                    // Fill the view object
                    model.Tenants = tenants.Select(t => new TenantViewModel()
                    {
                        Tenant = t
                    }).ToList();
                }

                // Create the breadcrumb
                var breadcrumb = new List <BreadcrumbItemViewModel>();
                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Tenants"
                });
                ViewBag.Breadcrumb = breadcrumb;
            }

            catch (Exception ex)
            {
                LogService.Info("Tenants not found", ex.Message, ex.InnerException);
            }

            return(View(model));
        }
Ejemplo n.º 4
0
        public ActionResult Edit([Bind(Include = "TenantId,Code,Name,Description,Culture,TimeZone,Created,Status")] EditTenantViewModel tenantViewModel)
        {
            try
            {
                using (var ctx = new SaasDbContext())
                {
                    // Get existing tenant from db
                    var tenant = ctx.Tenants.Where(t => t.TenantId == tenantViewModel.TenantId).FirstOrDefault();
                    tenant.Code        = tenantViewModel.Code;
                    tenant.Name        = tenantViewModel.Name;
                    tenant.Description = tenantViewModel.Description;
                    tenant.Culture     = tenantViewModel.Culture;
                    tenant.TimeZone    = tenantViewModel.TimeZone;
                    tenant.Status      = tenantViewModel.Status;

                    if (ModelState.IsValid)
                    {
                        ctx.Entry(tenant).State = EntityState.Modified;
                        ctx.SaveChanges();
                        return(RedirectToAction("Index"));
                    }
                }
            }

            catch (Exception ex)
            {
                LogService.Info("Tenants not found", ex.Message, ex.InnerException);
            }

            return(View(tenantViewModel));
        }
Ejemplo n.º 5
0
        public ActionResult ChangePassword([Bind(Include = "Id,Password,NewPassword,NewPasswordConfirm,Created")] ChangePasswordViewModel model, int id)
        {
            try
            {
                using (var ctx = new SaasDbContext())
                {
                    //Check the user role
                    if (id == CurrentUser.Id)
                    {
                        if (model.NewPassword == model.NewPasswordConfirm)
                        {
                            //Change password
                            UserManager.ChangePassword(id, model.Password, model.NewPassword);
                            LogService.Info("User password changed", model.User.Id.ToString(), model.User.Firstname + "" + model.User.Lastname);
                            return(RedirectToAction("Index"));
                        }
                    }
                    else
                    {
                        return(View("Authorize"));
                    }
                }
            }

            catch (Exception ex)
            {
                LogService.Info("User not found", ex.Message, ex.InnerException);
            }

            return(View(model));
        }
        public ActionResult Create()
        {
            using (var ctx = new SaasDbContext())
            {
                ViewBag.TenantId = new SelectList(ctx.Tenants.ToList(), "TenantId", "Name");
            }

            // Create the breadcrumb
            var breadcrumb = new List <BreadcrumbItemViewModel>();

            breadcrumb.Add(new BreadcrumbItemViewModel()
            {
                Text = "Applications",
                Link = "/Applications"
            });

            breadcrumb.Add(new BreadcrumbItemViewModel()
            {
                Text = "New"
            });

            ViewBag.Breadcrumb      = breadcrumb;
            ViewBag.CurrentTenantId = CurrentTenant.TenantId;
            return(View());
        }
        public ActionResult Create([Bind(Include = "Id,TenantId,Code,Domain,Name,Culture,TimeZone,Updated,Created,Status")] Application application)
        {
            try
            {
                using (var ctx = new SaasDbContext())
                {
                    if (application.TenantId == CurrentTenant.TenantId || User.IsInRole("SystemAdministrator"))
                    {
                        if (ModelState.IsValid)
                        {
                            // Add application to db
                            ctx.Applications.Add(application);
                            ctx.SaveChanges();
                            return(RedirectToAction("Index"));
                        }
                    }
                    else
                    {
                        return(View("Authorize"));
                    }
                }
            }
            catch (Exception ex)
            {
                LogService.Info("Application do not create", ex.Message, ex.InnerException);
            }

            return(View(application));
        }
Ejemplo n.º 8
0
        public ActionResult Edit([Bind(Include = "Id,UserId,TenantId,Firstname,LastName,Username,Email,PasswordHash,SecurityStamp,MobileNumber,Gender,Birthdate,Created")] EditUserViewModel userviewmodel)
        {
            try
            {
                using (var ctx = new SaasDbContext())
                {
                    // Get existing user from db
                    var user = ctx.Users.Where(u => u.Id == userviewmodel.UserId).FirstOrDefault();

                    user.Firstname    = userviewmodel.Firstname;
                    user.Lastname     = userviewmodel.Lastname;
                    user.Email        = userviewmodel.Email;
                    user.UserName     = userviewmodel.Email;
                    user.Gender       = userviewmodel.Gender;
                    user.MobileNumber = userviewmodel.MobileNumber;

                    //Get the user role from db
                    var userRoleold = ctx.UserRoles.Where(ui => ui.UserId == userviewmodel.UserId).FirstOrDefault();
                    //Remove user role from db
                    ctx.UserRoles.Remove(userRoleold);
                    ctx.SaveChanges();


                    //Create a new user role
                    var modelRole = new LidiaUserRole()
                    {
                        UserId   = userviewmodel.UserId,
                        RoleId   = userviewmodel.Id,
                        TenantId = userviewmodel.TenantId
                    };

                    if (userviewmodel.UserId == CurrentUser.Id || User.IsInRole("SystemAdministrator") || User.IsInRole("TenantAdministrator"))
                    {
                        if (ModelState.IsValid)
                        {
                            //Update the user
                            ctx.Entry(user).State = EntityState.Modified;
                            ctx.UserRoles.Add(modelRole);
                            ctx.SaveChanges();
                            return(RedirectToAction("Index"));
                        }
                        ViewBag.TenantId = new SelectList(ctx.Tenants.ToList(), "TenantId", "Name");
                    }
                    else
                    {
                        return(View("Authorize"));
                    }
                }
            }

            catch (Exception ex)
            {
                LogService.Info("Applications not found", ex.Message, ex.InnerException);
            }

            return(View(userviewmodel));
        }
Ejemplo n.º 9
0
        public ActionResult Details(int?id)
        {
            // Create the model
            var model  = new TenantViewModel();
            var tenant = new Tenant();

            try
            {
                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                using (var ctx = new SaasDbContext())
                {
                    // Get tenant from db
                    tenant = ctx.Tenants.Include("Applications").Where(i => i.TenantId == id).FirstOrDefault();
                }

                if (tenant == null)
                {
                    return(HttpNotFound());
                }

                // Create the breadcrumb
                var breadcrumb = new List <BreadcrumbItemViewModel>();
                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Tenants",
                    Link = "/Tenants"
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = tenant.Name,
                    Link = "/Tenants/" + tenant.TenantId + "/Details"
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Details"
                });

                ViewBag.Breadcrumb = breadcrumb;

                // Set the tenant
                model.Tenant = tenant;
            }

            catch (Exception ex)
            {
                LogService.Info("Tenants not found", ex.Message, ex.InnerException);
            }

            return(View(model));
        }
Ejemplo n.º 10
0
        // GET: Users
        public ActionResult Index()
        {
            //Create the model
            var model = new UserListViewModel();

            try
            {
                // Get the users from the database
                var users = new List <LidiaUser>();
                if (User.IsInRole("SystemAdministrator"))
                {
                    using (var ctx = new SaasDbContext())
                    {
                        users = ctx.Users.ToList();
                    }
                }
                else
                {
                    using (var ctx = new SaasDbContext())
                    {
                        users = ctx.UserRoles.Where(ur => ur.TenantId == CurrentTenant.TenantId).Select(ur => ur.User).ToList();
                    }
                }

                // Set the user collection into the model
                model.Users = users.Select(u => new UserViewModel()
                {
                    User = u
                }).ToList();

                // Create the breadcrumb
                var breadcrumb = new List <BreadcrumbItemViewModel>();
                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Users"
                });

                ViewBag.Breadcrumb = breadcrumb;
            }

            catch (Exception ex)
            {
                LogService.Info("Users not found", ex.Message, ex.InnerException);
            }

            return(View(model));
        }
        public static SchedulerUserManager Create(IdentityFactoryOptions <SchedulerUserManager> options, IOwinContext context)
        {
            var manager = new SchedulerUserManager(new SchedulerUserStore(SaasDbContext.Create()));

            // Configure validation logic for usernames
            manager.UserValidator = new UserValidator <LidiaUser, int>(manager)
            {
                AllowOnlyAlphanumericUserNames = false,
                RequireUniqueEmail             = true
            };
            // Configure validation logic for passwords
            manager.PasswordValidator = new PasswordValidator
            {
                RequiredLength          = 6,
                RequireNonLetterOrDigit = false,
                RequireDigit            = false,
                RequireLowercase        = false,
                RequireUppercase        = false,
            };
            // Register two factor authentication providers. This application uses Phone
            // and Emails as a step of receiving a code for verifying the user
            // You can write your own provider and plug in here.
            manager.RegisterTwoFactorProvider("PhoneCode",
                                              new PhoneNumberTokenProvider <LidiaUser, int>
            {
                MessageFormat = "Your security code is: {0}"
            });
            manager.RegisterTwoFactorProvider("EmailCode",
                                              new EmailTokenProvider <LidiaUser, int>
            {
                Subject    = "Security Code",
                BodyFormat = "Your security code is: {0}"
            });

            //manager.EmailService = new EmailService();
            //manager.SmsService = new SmsService();

            var dataProtectionProvider = options.DataProtectionProvider;

            if (dataProtectionProvider != null)
            {
                manager.UserTokenProvider = new DataProtectorTokenProvider <LidiaUser, int>(dataProtectionProvider.Create("FFIdentity"));
            }
            return(manager);
        }
Ejemplo n.º 12
0
        public ActionResult DeleteConfirmed(int id)
        {
            //Create the user
            var user = new LidiaUser();

            try
            {
                using (var ctx = new SaasDbContext())
                {
                    //Get the user from db
                    user = ctx.Users.Where(u => u.Id == id).FirstOrDefault();

                    //Get user's tenant from db
                    var tenantId = user.Roles.Where(tı => tı.UserId == id).FirstOrDefault().TenantId;


                    if (User.IsInRole("SystemAdministrator"))
                    {
                        // Delete user from db
                        ctx.Users.Remove(user);
                        ctx.SaveChanges();
                        return(RedirectToAction("Index"));
                    }
                    else if (User.IsInRole("TenantAdministrator") && CurrentTenant.TenantId == tenantId)
                    {
                        // Delete user from db
                        ctx.Users.Remove(user);
                        ctx.SaveChanges();
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        return(View("Authorize"));
                    }
                }
            }

            catch (Exception ex)
            {
                LogService.Info("Applications not found", ex.Message, ex.InnerException);
            }

            return(RedirectToAction("Index"));
        }
        public ActionResult Create([Bind(Include = "CollectionId,TenantId,ApplicationId,Name,Created,Status")] JobCollection collection)
        {
            try
            {
                using (SchedulerDbContext ctx = new SchedulerDbContext())
                {
                    if (User.IsInRole("SystemAdministrator") || collection.TenantId == CurrentTenant.TenantId)
                    {
                        if (ModelState.IsValid)
                        {
                            ctx.Collections.Add(collection);
                            ctx.SaveChanges();
                            return(RedirectToAction("Index"));
                        }
                    }
                    else
                    {
                        return(View("Authorize"));
                    }
                }
            }

            catch (Exception ex)
            {
                LogService.Info("Collections not found", ex.Message, ex.InnerException);
            }

            using (var saasDb = new SaasDbContext())
            {
                if (User.IsInRole("SystemAdministrator"))
                {
                    ViewBag.TenantId      = new SelectList(saasDb.Tenants.ToList(), "TenantId", "Name");
                    ViewBag.ApplicationId = new SelectList(saasDb.Applications.ToList(), "Id", "Name");
                }
                else
                {
                    ViewBag.TenantId      = new SelectList(saasDb.Tenants.Where(i => i.TenantId == CurrentTenant.TenantId).ToList(), "TenantId", "Name");
                    ViewBag.ApplicationId = new SelectList(saasDb.Applications.Where(a => a.TenantId == CurrentTenant.TenantId).ToList(), "Id", "Name");
                }
            }

            return(View(collection));
        }
Ejemplo n.º 14
0
        public ActionResult Create()
        {
            try
            {
                using (var ctx = new SaasDbContext())
                {
                    if (User.IsInRole("SystemAdministrator"))
                    {
                        ViewBag.TenantId = new SelectList(ctx.Tenants.ToList(), "TenantId", "Name");
                        ViewBag.Id       = new SelectList(ctx.Roles.ToList(), "Id", "Name");
                    }
                    else if (User.IsInRole("TenantAdministrator"))
                    {
                        ViewBag.TenantId = new SelectList(ctx.Tenants.Where(t => t.TenantId == CurrentTenant.TenantId).ToList(), "TenantId", "Name");
                        ViewBag.Id       = new SelectList(ctx.Roles.Where(t => t.Id != 3).ToList(), "Id", "Name");
                    }
                    else
                    {
                        return(View("Authorize"));
                    }
                }
                // Create the breadcrumb
                var breadcrumb = new List <BreadcrumbItemViewModel>();
                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Users",
                    Link = "/Users"
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "New"
                });

                ViewBag.Breadcrumb = breadcrumb;
            }

            catch (Exception ex)
            {
                LogService.Info("Users create error", ex.Message, ex.InnerException);
            }
            return(View());
        }
        public ActionResult Edit([Bind(Include = "CollectionId,ApplicationId,TenantId,Name,Created,Status")] EditJobCollectionViewModel collectionViewModel)
        {
            try
            {
                if (User.IsInRole("SystemAdministrator") || collectionViewModel.TenantId == CurrentTenant.TenantId)
                {
                    using (var ctx = new SchedulerDbContext())
                    {
                        // Get existing collection from db
                        var collection = ctx.Collections.Where(c => c.CollectionId == collectionViewModel.CollectionId).FirstOrDefault();

                        collection.Name   = collectionViewModel.Name;
                        collection.Status = collectionViewModel.Status;

                        if (ModelState.IsValid)
                        {
                            //Update collection
                            ctx.Entry(collection).State = EntityState.Modified;
                            ctx.SaveChanges();
                            return(RedirectToAction("Index"));
                        }
                    }
                }
                else
                {
                    return(View("Authorize"));
                }

                using (var saaSctx = new SaasDbContext())
                {
                    ViewBag.TenantId      = new SelectList(saaSctx.Tenants.ToList(), "TenantId", "Name");
                    ViewBag.ApplicationId = new SelectList(saaSctx.Applications.ToList(), "Id", "Name");
                }
            }

            catch (Exception ex)
            {
                LogService.Info("Collections not found", ex.Message, ex.InnerException);
            }

            return(View(collectionViewModel));
        }
        public ActionResult Edit([Bind(Include = "Id,TenantId,Code,Domain,Name,Culture,TimeZone,Updated,Created,Status")] EditApplicationViewModel applicationViewModel)
        {
            try
            {
                using (var ctx = new SaasDbContext())
                {
                    if (applicationViewModel.TenantId == CurrentTenant.TenantId || User.IsInRole("SystemAdministrator"))
                    {
                        //Get existing application from db
                        var application = ctx.Applications.Where(a => a.Id == applicationViewModel.Id).FirstOrDefault();

                        application.Name     = applicationViewModel.Name;
                        application.Code     = applicationViewModel.Code;
                        application.Domain   = applicationViewModel.Domain;
                        application.Culture  = applicationViewModel.Culture;
                        application.TimeZone = applicationViewModel.TimeZone;
                        application.Status   = applicationViewModel.Status;

                        if (ModelState.IsValid)
                        {
                            // Update application
                            ctx.Entry(application).State = EntityState.Modified;
                            ctx.SaveChanges();
                            return(RedirectToAction("Index"));
                        }
                        ViewBag.TenantId = new SelectList(ctx.Tenants.ToList(), "TenantId", "Name");
                    }
                    else
                    {
                        return(View("Authorize"));
                    }
                }
            }

            catch (Exception ex)
            {
                LogService.Info("Applications not found", ex.Message, ex.InnerException);
            }

            return(View(applicationViewModel));
        }
        public ActionResult Create()
        {
            try
            {
                //Get tenantId and ApplicationId
                using (SaasDbContext saasCtx = new SaasDbContext())
                {
                    if (User.IsInRole("SystemAdministrator"))
                    {
                        ViewBag.TenantId      = new SelectList(saasCtx.Tenants.ToList(), "TenantId", "Name");
                        ViewBag.ApplicationId = new SelectList(saasCtx.Applications.ToList(), "Id", "Name");
                    }
                    else
                    {
                        ViewBag.TenantId      = new SelectList(saasCtx.Tenants.Where(t => t.TenantId == CurrentTenant.TenantId).ToList(), "TenantId", "Name");
                        ViewBag.ApplicationId = new SelectList(saasCtx.Applications.Where(at => at.TenantId == CurrentTenant.TenantId).ToList(), "Id", "Name");
                    }

                    // Create the breadcrumb
                    var breadcrumb = new List <BreadcrumbItemViewModel>();
                    breadcrumb.Add(new BreadcrumbItemViewModel()
                    {
                        Text = "Collections",
                        Link = "/Collections"
                    });

                    breadcrumb.Add(new BreadcrumbItemViewModel()
                    {
                        Text = "New"
                    });

                    ViewBag.Breadcrumb = breadcrumb;
                }
            }
            catch (Exception ex)
            {
                LogService.Info("Collections not found", ex.Message, ex.InnerException);
            }

            return(View());
        }
Ejemplo n.º 18
0
        public ActionResult Create([Bind(Include = "Code,Name,Description,Culture,TimeZone,Created,Status")] Tenant tenant)
        {
            try
            {
                using (var ctx = new SaasDbContext())
                {
                    if (ModelState.IsValid)
                    {
                        ctx.Tenants.Add(tenant);
                        ctx.SaveChanges();
                        return(RedirectToAction("Index"));
                    }
                }
            }
            catch (Exception ex)
            {
                LogService.Info("Tenants not found", ex.Message, ex.InnerException);
            }

            return(View(tenant));
        }
Ejemplo n.º 19
0
        public ActionResult ForgotPassword(int?id)
        {
            if (id != null)
            {
                using (var ctx = new SaasDbContext())
                {
                    // Get the user from db
                    var user = ctx.Users.Where(u => u.Id == id).FirstOrDefault();

                    var tenantid = ctx.UserRoles.Where(t => t.UserId == id).FirstOrDefault().TenantId;

                    if (CurrentTenant.TenantId == tenantid && User.IsInRole("TenantAdministrator"))
                    {
                        ViewBag.Email = user.Email;
                    }
                    else if (User.IsInRole("SystemAdministrator"))
                    {
                        ViewBag.Email = user.Email;
                    }
                }
            }
            return(View());
        }
        // GET: Applications
        public ActionResult Index()
        {
            List <Application> applications = new List <Application>();

            try
            {
                using (var ctx = new SaasDbContext())
                {
                    if (User.IsInRole("SystemAdministrator"))
                    {
                        //Get all applications from db
                        applications = ctx.Applications.Include(xi => xi.Tenant).ToList();
                    }
                    else
                    {
                        //Get current tenant applications from db
                        applications = ctx.Applications.Where(i => i.TenantId == CurrentTenant.TenantId).Include(xi => xi.Tenant).ToList();
                    }
                    //test
                    // Create the breadcrumb
                    var breadcrumb = new List <BreadcrumbItemViewModel>();
                    breadcrumb.Add(new BreadcrumbItemViewModel()
                    {
                        Text = "Applications"
                    });

                    ViewBag.Breadcrumb = breadcrumb;
                }
            }

            catch (Exception ex)
            {
                LogService.Info("Applications not found", ex.Message, ex.InnerException);
            }

            return(View(applications));
        }
Ejemplo n.º 21
0
        public ActionResult Delete(int id)
        {
            //Create the model
            var model = new UserViewModel();

            //Create the user
            var user = new LidiaUser();

            try
            {
                using (var ctx = new SaasDbContext())
                {
                    // Get the users from the database
                    user = ctx.Users.Include("Roles").Where(u => u.Id == id).FirstOrDefault();

                    //Get tenant id from db
                    var tenantid = ctx.UserRoles.Where(t => t.UserId == id).FirstOrDefault().TenantId;

                    if (User.IsInRole("SystemAdministrator"))
                    {
                        //Add user to model
                        model.User = user;
                    }
                    else if (User.IsInRole("TenantAdministrator") && CurrentTenant.TenantId == tenantid)
                    {
                        //Add user to model
                        model.User = user;
                    }
                    else
                    {
                        return(View("Authorize"));
                    }
                }

                // Create the breadcrumb
                var breadcrumb = new List <BreadcrumbItemViewModel>();
                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Users",
                    Link = "/Users"
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = user.Firstname + " " + user.Lastname,
                    Link = "/Users/" + user.Id + "/Details"
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Delete Confirm"
                });

                ViewBag.Breadcrumb = breadcrumb;


                if (model.User != null)
                {
                    return(View(model));
                }
                else
                {
                    return(View("Authorize"));
                }
            }
            catch (Exception ex)
            {
                LogService.Info("User not found to delete");
                return(RedirectToAction("Home/Index", ex.Message, ex.InnerException));
            }
        }
        public ActionResult Delete(int?id)
        {
            // Create the model
            var model = new ApplicationViewModel();

            try
            {
                using (var ctx = new SaasDbContext())
                {
                    // Get application from db
                    var application = ctx.Applications.Where(i => i.Id == id).Include("Tenant").FirstOrDefault();

                    if (application.TenantId == CurrentTenant.TenantId || User.IsInRole("SystemAdministrator"))
                    {
                        // Add application to model
                        model.Application = application;
                    }
                    else
                    {
                        return(View("Authorize"));
                    }

                    if (model == null)
                    {
                        return(View("Error"));
                    }
                }

                // Create the breadcrumb
                var breadcrumb = new List <BreadcrumbItemViewModel>();
                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Applications",
                    Link = "/Applications"
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = model.Application.Name.ToString(),
                    Link = "/Application/" + id + "/Details"
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Delete Confirm"
                });

                ViewBag.Breadcrumb = breadcrumb;


                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
            }

            catch (Exception ex)
            {
                LogService.Info("Applications not found", ex.Message, ex.InnerException);
            }

            return(View(model));
        }
Ejemplo n.º 23
0
        public ActionResult Details(int id)
        {
            //Create the model
            var model = new UserViewModel();

            //Create the user
            var user = new LidiaUser();

            try
            {
                using (var ctx = new SaasDbContext())
                {
                    // Get the user from the database
                    user = ctx.Users.Include("Roles").Where(u => u.Id == id).FirstOrDefault();

                    //Get user's tenant from db
                    var tenantId = user.Roles.Where(tı => tı.UserId == id).FirstOrDefault().TenantId;

                    if (User.IsInRole("SystemAdministrator"))
                    {
                        //Add user to model
                        model.User = user;
                    }
                    else if (User.IsInRole("TenantAdministrator") && CurrentTenant.TenantId == tenantId)
                    {
                        //Add user to model
                        model.User = user;
                    }
                    else if (id == CurrentUser.Id)
                    {
                        //Add user to model
                        model.User = user;
                    }
                    else
                    {
                        return(View("Authorize"));
                    }
                }

                // Create the breadcrumb
                var breadcrumb = new List <BreadcrumbItemViewModel>();

                // Set breadcrumb item
                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Users",
                    Link = "/Users"
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = user.Firstname + " " + user.Lastname,
                    Link = "/Users/" + user.Id + "/Details"
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Details"
                });

                //set breadcrumb item to Viewbag
                ViewBag.Breadcrumb = breadcrumb;
            }

            catch (Exception ex)
            {
                LogService.Info("User not found", ex.Message, ex.InnerException);
            }


            return(View(model));
        }
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            //Create the model
            var model = new EditApplicationViewModel();

            try
            {
                using (var ctx = new SaasDbContext())
                {
                    //Get application from db
                    var application = ctx.Applications.Find(id);

                    if (User.IsInRole("SystemAdministrator") || application.TenantId == CurrentTenant.TenantId)
                    {
                        // Add application item to model
                        model.Id       = application.Id;
                        model.Name     = application.Name;
                        model.ParentId = application.ParentId;
                        model.TenantId = application.TenantId;
                        model.TimeZone = application.TimeZone;
                        model.Code     = application.Code;
                        model.Culture  = application.Culture;
                        model.Domain   = application.Domain;
                        model.Created  = application.Created;
                        model.Status   = application.Status;
                    }
                    else
                    {
                        return(View("Authorize"));
                    }

                    if (model == null)
                    {
                        return(View("Error"));
                    }
                }
                // Create the breadcrumb
                var breadcrumb = new List <BreadcrumbItemViewModel>();
                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Applications",
                    Link = "/Applications"
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = model.Name.ToString(),
                    Link = "/Application/" + id + "/Details"
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Edit"
                });

                ViewBag.Breadcrumb = breadcrumb;
            }

            catch (Exception ex)
            {
                LogService.Info("Application not found", ex.Message, ex.InnerException);
            }

            return(View(model));
        }
Ejemplo n.º 25
0
        public ActionResult ChangePassword(int id)
        {
            var model = new ChangePasswordViewModel();

            try
            {
                using (var ctx = new SaasDbContext())
                {
                    //Get user from db
                    var user = ctx.Users.Where(u => u.Id == id).FirstOrDefault();

                    //Get tenant ıd from db
                    var userRole = ctx.UserRoles.Where(ur => ur.UserId == id).FirstOrDefault().TenantId;


                    //Add user to model
                    if (CurrentUser.Id == id)
                    {
                        model.User       = user;
                        ViewBag.TenantId = new SelectList(ctx.Tenants.ToList(), "TenantId", "Name");
                    }
                    else if (userRole == CurrentTenant.TenantId && User.IsInRole("TenantAdministrator"))
                    {
                        return(View("ResetPasswordMail"));
                    }
                    else if (User.IsInRole("SystemAdministrator"))
                    {
                        return(View("ResetPasswordMail"));
                    }
                    else
                    {
                        return(View("Authorize"));
                    }
                }
            }

            catch (Exception ex)
            {
                LogService.Info("User not found", ex.Message, ex.InnerException);
            }

            // Create the breadcrumb
            var breadcrumb = new List <BreadcrumbItemViewModel>();

            breadcrumb.Add(new BreadcrumbItemViewModel()
            {
                Text = "Users",
                Link = "/Users"
            });

            breadcrumb.Add(new BreadcrumbItemViewModel()
            {
                Text = model.User.Firstname + " " + model.User.Lastname,
                Link = "/Users/" + model.User.Id + "/Details"
            });

            breadcrumb.Add(new BreadcrumbItemViewModel()
            {
                Text = "Change Password",
            });

            ViewBag.Breadcrumb = breadcrumb;

            return(View(model));
        }
Ejemplo n.º 26
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            //Create the model
            var model = new EditTenantViewModel();

            var tenant = new Tenant();

            try
            {
                using (var ctx = new SaasDbContext())
                {
                    tenant = ctx.Tenants.Find(id);
                }
                if (tenant == null)
                {
                    return(HttpNotFound());
                }

                //Add tenant to model
                model.TenantId    = tenant.TenantId;
                model.Code        = tenant.Code;
                model.Name        = tenant.Name;
                model.Description = tenant.Description;
                model.Culture     = tenant.Culture;
                model.TimeZone    = tenant.TimeZone;
                model.Created     = tenant.Created;
                model.Status      = tenant.Status;

                // Create the breadcrumb
                var breadcrumb = new List <BreadcrumbItemViewModel>();

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Tenants",
                    Link = "/Tenants"
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = tenant.Name,
                    Link = "/Tenants/" + tenant.TenantId + "/Details"
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Edit"
                });

                ViewBag.Breadcrumb = breadcrumb;
            }

            catch (Exception ex)
            {
                LogService.Info("Jobs not found", ex.Message, ex.InnerException);
            }

            return(View(model));
        }
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            // Create the model
            var model = new ApplicationViewModel();

            try
            {
                using (var saaSctx = new SaasDbContext())
                {
                    using (var scHctx = new SchedulerDbContext())
                    {
                        var application = saaSctx.Applications.Where(a => a.Id == id).Include("Tenant").FirstOrDefault();

                        if (User.IsInRole("SystemAdministrator"))
                        {
                            // Get application from db
                            model.Application = application;

                            // Get collections from db
                            model.Collections = scHctx.Collections.Where(i => i.ApplicationId == id).Include("Application").ToList();
                        }
                        else if (application.TenantId == CurrentTenant.TenantId)
                        {
                            // Get application from db
                            model.Application = application;

                            // Get collections from db
                            model.Collections = scHctx.Collections.Where(i => i.ApplicationId == id).Where(t => t.TenantId == CurrentTenant.TenantId).Include("Application").ToList();
                        }
                        else
                        {
                            return(View("Authorize"));
                        }
                    }
                }


                if (model.Application == null)
                {
                    return(View("Error"));
                }

                // Create the breadcrumb
                var breadcrumb = new List <BreadcrumbItemViewModel>();
                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Applications",
                    Link = "/Applications"
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = model.Application.Name.ToString()
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Details"
                });

                ViewBag.Breadcrumb = breadcrumb;
            }

            catch (Exception ex)
            {
                LogService.Info("Applications not found", ex.Message, ex.InnerException);
            }
            return(View(model));
        }
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            //Create the model
            var model = new EditJobCollectionViewModel();

            var collection = new JobCollection();

            try
            {
                using (var ctx = new SchedulerDbContext())
                {
                    //Get collection from db
                    collection = ctx.Collections.Find(id);

                    if (collection == null)
                    {
                        return(HttpNotFound());
                    }

                    using (var saaSctx = new SaasDbContext())
                    {
                        ViewBag.TenantId      = new SelectList(saaSctx.Tenants.ToList(), "TenantId", "Name");
                        ViewBag.ApplicationId = new SelectList(saaSctx.Applications.ToList(), "Id", "Name");

                        //Add collection to model
                        model.ApplicationId = collection.ApplicationId;
                        model.CollectionId  = collection.CollectionId;
                        model.Name          = collection.Name;
                        model.Created       = collection.Created;
                        model.Updated       = collection.Updated;
                        model.Status        = collection.Status;

                        if (User.IsInRole("SystemAdministrator") || collection.TenantId == CurrentTenant.TenantId)
                        {
                            model.TenantId = collection.TenantId;
                        }
                        else
                        {
                            return(View("Authorize"));
                        }
                    }
                }

                // Create the breadcrumb
                var breadcrumb = new List <BreadcrumbItemViewModel>();
                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Collections",
                    Link = "/Collections"
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = collection.Name,
                    Link = "/Collections/" + id + "/Details"
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Edit"
                });

                ViewBag.Breadcrumb = breadcrumb;
            }

            catch (Exception ex)
            {
                LogService.Info("Collections not found", ex.Message, ex.InnerException);
            }

            return(View(model));
        }
 public HeadstoneUserStore(SaasDbContext context) : base(context)
 {
 }
Ejemplo n.º 30
0
        public ActionResult Edit(int?id)
        {
            //Create the model
            var model = new EditUserViewModel();

            // Create the user
            var user = new LidiaUser();

            var userRole = new LidiaUserRole();


            try
            {
                using (var ctx = new SaasDbContext())
                {
                    //Get user from db
                    user = ctx.Users.Where(u => u.Id == id).Include("Roles").FirstOrDefault();
                    //Get user role from db
                    userRole = ctx.UserRoles.Where(s => s.UserId == user.Id).FirstOrDefault();

                    if (User.IsInRole("SystemAdministrator"))
                    {
                        model.Firstname     = user.Firstname;
                        model.Lastname      = user.Lastname;
                        model.Email         = user.Email;
                        model.MobileNumber  = user.MobileNumber;
                        model.Gender        = user.Gender;
                        model.UserId        = user.Id;
                        model.Id            = userRole.RoleId;
                        model.TenantId      = userRole.TenantId;
                        model.PasswordHash  = user.PasswordHash;
                        model.Birthdate     = user.Birthdate;
                        model.SecurityStamp = user.SecurityStamp;

                        //Add user to model
                        ViewBag.Id = new SelectList(ctx.Roles.ToList(), "Id", "Name");
                    }
                    else if (CurrentTenant.TenantId == userRole.TenantId && User.IsInRole("TenantAdministrator"))
                    {
                        model.Firstname     = user.Firstname;
                        model.Lastname      = user.Lastname;
                        model.Email         = user.Email;
                        model.MobileNumber  = user.MobileNumber;
                        model.Gender        = user.Gender;
                        model.UserId        = user.Id;
                        model.Id            = userRole.RoleId;
                        model.TenantId      = userRole.TenantId;
                        model.PasswordHash  = user.PasswordHash;
                        model.Birthdate     = user.Birthdate;
                        model.SecurityStamp = user.SecurityStamp;

                        ViewBag.Id = new SelectList(ctx.Roles.Where(r => r.Id != 3).ToList(), "Id", "Name");
                    }
                    else if (CurrentUser.Id == user.Id)
                    {
                        model.Firstname     = user.Firstname;
                        model.Lastname      = user.Lastname;
                        model.Email         = user.Email;
                        model.MobileNumber  = user.MobileNumber;
                        model.Gender        = user.Gender;
                        model.UserId        = user.Id;
                        model.Id            = userRole.RoleId;
                        model.TenantId      = userRole.TenantId;
                        model.PasswordHash  = user.PasswordHash;
                        model.Birthdate     = user.Birthdate;
                        model.SecurityStamp = user.SecurityStamp;

                        ViewBag.Id = new SelectList(ctx.Roles.Where(r => r.Id == 1).ToList(), "Id", "Name");
                    }
                    else
                    {
                        return(View("Authorize"));
                    }
                }

                // Create the breadcrumb
                var breadcrumb = new List <BreadcrumbItemViewModel>();
                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Users",
                    Link = "/Users"
                });


                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = user.Firstname + " " + user.Lastname,
                    Link = "/Users/" + user.Id + "/Details"
                });

                breadcrumb.Add(new BreadcrumbItemViewModel()
                {
                    Text = "Edit"
                });

                ViewBag.Breadcrumb = breadcrumb;

                // Add currentUserId to model
                ViewBag.CurrentUser   = CurrentUser.Id;
                ViewBag.CurrentTenant = CurrentTenant.TenantId;

                if (model != null)
                {
                    return(View(model));
                }
                else
                {
                    return(RedirectToAction("Home/Index"));
                }
            }
            catch (Exception ex)
            {
                LogService.Info("User not found to edit", ex.Message, ex.InnerException);
                return(RedirectToAction("Home/Index"));
            }
        }