Beispiel #1
0
        public ActionResult PermissionEditor(string GroupID)
        {
            Gid = GroupID;
            PermissionModel permissionmodel = new PermissionModel();

            permissionmodel.MyPermissionAllow = new List <PagePermissionModel>();
            permissionmodel.MyPermissionDeny  = new List <PagePermissionModel>();
            try
            {
                var Pages = pagemanager.GetAllPagesForGroups(GroupID);
                foreach (Page p in Pages)
                {
                    PagePermissionModel model = new PagePermissionModel();
                    model.PageID   = p.PageID;
                    model.PageName = p.PageName;
                    model.Selected = false;
                    if (pagemanager.GetPagePermissionStatus(p.PageID, Gid))
                    {
                        permissionmodel.MyPermissionDeny.Add(model);
                    }
                    else
                    {
                        permissionmodel.MyPermissionAllow.Add(model);
                    }
                }

                return(PartialView("_PageList", permissionmodel));
            }

            catch (Exception e)
            {
                ViewBag.message = e.Message;
                return(View("Error"));
            }
        }
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            if (flag == true)
            {
                if (SessionManagement.CurrentUser == null)
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
            else
            {
                var ses     = sm.CheckSession();
                var session = sm.getSession();

                if (sm.CheckSession())
                {
                    this.PageId   = PageId;
                    this.ActionId = ActionId;
                    BranchId      = session.BranchId ?? 0;
                    RoleId        = session.RoleId;
                    UserId        = session.Id;
                }

                if (sm.CheckSession())
                {
                    if (IsAdmin())
                    {
                        return(false);
                    }
                    CompanyPage = getPage();
                    // ActionPage = getAction();
                    if (CompanyPage != null)// && ActionPage != null)
                    {
                        return(true);
                        //if (ActionId == 0)
                        //{
                        //    return false;
                        //}
                        //else
                        //{
                        //    if (ActionPage != null)
                        //    {
                        //        return true;
                        //    }
                        //    else
                        //    {
                        //        return false;
                        //    }
                        //}
                    }
                }
                return(false);
            }
        }
Beispiel #3
0
        public async Task <PagePermissionResponse> PagePermission(string roleId)
        {
            PagePermissionResponse     p       = new PagePermissionResponse();
            List <PagePermissionModel> ppmEdit = new List <PagePermissionModel>();
            List <PagePermissionModel> ppmView = new List <PagePermissionModel>();
            string message = string.Empty;

            Console.WriteLine("Connect to SQL Server and demo Create, Read, Update and Delete operations.");
            Console.Write("Connecting to SQL Server ... ");
            using (SqlConnection connection = new SqlConnection(this._connectionString))
            {
                connection.Open();
                Console.WriteLine("Done.");
                using (SqlCommand command = new SqlCommand("get_role_permission", connection))
                {
                    command.CommandType = CommandType.StoredProcedure;
                    command.Parameters.Add("@role_id", SqlDbType.Int).Value = roleId;
                    command.Parameters.Add("@message", SqlDbType.NVarChar, 123456);
                    command.Parameters["@message"].Direction = ParameterDirection.Output;
                    try
                    {
                        using (SqlDataReader reader = await command.ExecuteReaderAsync())
                        {
                            message = (string)command.Parameters["@message"].Value;
                            while (reader.Read())
                            {
                                PagePermissionModel pp = new PagePermissionModel();
                                pp.Page   = Convert.ToString(reader["edit_pages"]);
                                pp.roleId = Convert.ToInt32(reader["role_id"]);
                                ppmEdit.Add(pp);
                            }
                            ;
                            if (reader.NextResult())
                            {
                                while (reader.Read())
                                {
                                    PagePermissionModel pp = new PagePermissionModel();
                                    pp.Page   = Convert.ToString(reader["edit_pages"]);
                                    pp.roleId = Convert.ToInt32(reader["role_id"]);
                                    ppmView.Add(pp);
                                }
                            }
                            p.pagePermissionEdit = ppmEdit;
                            p.pagePermissionView = ppmView;
                            p.message            = message;
                        }
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
            }

            Console.WriteLine("All done. Press any key to finish...");
            return(p);
        }
Beispiel #4
0
        public PageAdminModel GetDefaultAdminModel(Guid siteId)
        {
            using (var context = _dbContextFactory.Create())
            {
                var result = new PageAdminModel();

                var languages = context.Languages
                                .Where(x => x.SiteId == siteId && x.Status != LanguageStatus.Deleted)
                                .OrderBy(x => x.SortOrder)
                                .ToList();

                foreach (var language in languages)
                {
                    result.PageLocalisations.Add(new PageLocalisationAdminModel
                    {
                        LanguageId     = language.Id,
                        LanguageName   = language.Name,
                        LanguageStatus = language.Status
                    });
                }

                foreach (var role in _roleService.GetAllRoles())
                {
                    var pagePermission = new PagePermissionModel
                    {
                        RoleId   = role.Id,
                        RoleName = role.Name,
                        Disabled = role.Name == DefaultRoleNames.Administrator
                    };

                    foreach (PermissionType permisisonType in Enum.GetValues(typeof(PermissionType)))
                    {
                        pagePermission.PagePermissionTypes.Add(new PagePermissionTypeModel
                        {
                            Type     = permisisonType,
                            Selected = role.Name == DefaultRoleNames.Administrator
                        });
                    }

                    result.PagePermissions.Add(pagePermission);
                }

                var menus =
                    context.Menus.Where(x => x.SiteId == siteId && x.Status == MenuStatus.Active)
                    .Select(menu => new MenuModel
                {
                    MenuId   = menu.Id,
                    MenuName = menu.Name,
                    Selected = false
                });

                result.Menus.AddRange(menus);

                return(result);
            }
        }
Beispiel #5
0
        public async Task <PageAdminModel> RetrieveAsync(GetDefaultForAdmin query)
        {
            using (var context = _contextFactory.Create())
            {
                var result = new PageAdminModel();

                var languages = await context.Languages
                                .Where(x => x.SiteId == query.SiteId && x.Status != LanguageStatus.Deleted)
                                .OrderBy(x => x.SortOrder)
                                .ToListAsync();

                foreach (var language in languages)
                {
                    result.PageLocalisations.Add(new PageLocalisationAdminModel
                    {
                        LanguageId     = language.Id,
                        LanguageName   = language.Name,
                        LanguageStatus = language.Status
                    });
                }

                foreach (var role in await _queryDispatcher.GetResultAsync <GetAllRoles, IEnumerable <ApplicationRole> >(new GetAllRoles()))
                {
                    var pagePermission = new PagePermissionModel
                    {
                        RoleId   = role.Id,
                        RoleName = role.Name,
                        Disabled = role.Name == Administrator.Name
                    };

                    foreach (PermissionType permisisonType in Enum.GetValues(typeof(PermissionType)))
                    {
                        pagePermission.PagePermissionTypes.Add(new PagePermissionTypeModel
                        {
                            Type     = permisisonType,
                            Selected = role.Name == Administrator.Name
                        });
                    }

                    result.PagePermissions.Add(pagePermission);
                }

                var menus = context.Menus.Where(x => x.SiteId == query.SiteId && x.Status == MenuStatus.Active)
                            .Select(menu => new MenuModel
                {
                    MenuId   = menu.Id,
                    MenuName = menu.Name,
                    Selected = false
                });

                result.Menus.AddRange(menus);

                return(result);
            }
        }
Beispiel #6
0
        public ActionResult GrantPermission(PageListModel model)
        {
            //3x3 me first number pagename id and second number is roleId
            var s    = new Dictionary <int, string>();
            var role = Services.RoleService.GetAll();

            //var role = db.Result<List<RoleModel>>("api/role/getAllForPagePermission?companyId=" + CompanyId, "", db.get);

            s = Processing(model, role);

            var list = new List <PagePermissionModel>();

            foreach (var first in role)
            {
                foreach (var second in s)
                {
                    if (first.Id == second.Key)
                    {
                        var ls = second.Value.Split('#');
                        foreach (var i in ls)
                        {
                            var newmodel = new PagePermissionModel();
                            if (i != "")
                            {
                                newmodel.RoleId      = first.Id;
                                newmodel.PageId      = Int32.Parse(i);
                                newmodel.IsActive    = true;
                                newmodel.IsAdminPage = model.IsAdminPage;
                                newmodel.PageAction  = newmodel.RoleId.ToString() + "x" + newmodel.PageId.ToString();
                                list.Add(newmodel);
                            }
                        }
                    }
                }
            }
            Services.RoleService.SetGrantPermission(list);
            // var model1 = db.Result<List<CompanyPageModel>>("api/role/setGrantPermission?companyId=" + CompanyId, list, db.post);
            //   TempData["Success"] = msg.Success;
            return(RedirectToAction("Index", "Role"));
        }
Beispiel #7
0
        public PageAdminModel GetDefaultAdminModel(Guid siteId)
        {
            var result = new PageAdminModel();

            var languages = _languageRepository.GetAll(siteId);

            foreach (var language in languages)
            {
                result.PageLocalisations.Add(new PageLocalisationAdminModel
                {
                    LanguageId     = language.Id,
                    LanguageName   = language.Name,
                    LanguageStatus = language.Status
                });
            }

            foreach (var role in _roleService.GetAllRoles())
            {
                var pagePermission = new PagePermissionModel
                {
                    RoleId   = role.Id,
                    RoleName = role.Name
                };

                foreach (PermissionType permisisonType in Enum.GetValues(typeof(PermissionType)))
                {
                    bool selected = role.Name == DefaultRoleNames.Administrator;

                    pagePermission.PagePermissionTypes.Add(new PagePermissionTypeModel
                    {
                        Type     = permisisonType,
                        Selected = selected
                    });
                }

                result.PagePermissions.Add(pagePermission);
            }

            return(result);
        }
        public async Task <PageAdminModel> RetrieveAsync(GetForAdmin query)
        {
            using (var context = _contextFactory.Create())
            {
                var page = await context.Pages
                           .Include(x => x.PageLocalisations)
                           .Include(x => x.PagePermissions)
                           .FirstOrDefaultAsync(x => x.SiteId == query.SiteId && x.Id == query.Id && x.Status != PageStatus.Deleted);

                if (page == null)
                {
                    return(null);
                }

                var result = new PageAdminModel
                {
                    Id              = page.Id,
                    Name            = page.Name,
                    Status          = page.Status,
                    Url             = page.Url,
                    Title           = page.Title,
                    MetaDescription = page.MetaDescription,
                    MetaKeywords    = page.MetaKeywords
                };

                var languages = await context.Languages
                                .Where(x => x.SiteId == query.SiteId && x.Status != LanguageStatus.Deleted)
                                .OrderBy(x => x.SortOrder)
                                .ToListAsync();

                foreach (var language in languages)
                {
                    var url             = string.Empty;
                    var title           = string.Empty;
                    var metaDescription = string.Empty;
                    var metaKeywords    = string.Empty;

                    var existingLocalisation = page
                                               .PageLocalisations
                                               .FirstOrDefault(x => x.LanguageId == language.Id);

                    if (existingLocalisation != null)
                    {
                        url             = existingLocalisation.Url;
                        title           = existingLocalisation.Title;
                        metaDescription = existingLocalisation.MetaDescription;
                        metaKeywords    = existingLocalisation.MetaKeywords;
                    }

                    result.PageLocalisations.Add(new PageLocalisationAdminModel
                    {
                        PageId          = page.Id,
                        LanguageId      = language.Id,
                        LanguageName    = language.Name,
                        LanguageStatus  = language.Status,
                        Url             = url,
                        Title           = title,
                        MetaDescription = metaDescription,
                        MetaKeywords    = metaKeywords
                    });
                }

                foreach (var role in await _queryDispatcher.DispatchAsync <GetAllRoles, IEnumerable <Role> >(new GetAllRoles()))
                {
                    var pagePermission = new PagePermissionModel
                    {
                        RoleId   = role.Id,
                        RoleName = role.Name,
                        Disabled = role.Name == Administrator.Name
                    };

                    foreach (PermissionType permisisonType in Enum.GetValues(typeof(PermissionType)))
                    {
                        bool selected = page.PagePermissions
                                        .FirstOrDefault(x => x.RoleId == role.Id && x.Type == permisisonType) != null;

                        pagePermission.PagePermissionTypes.Add(new PagePermissionTypeModel
                        {
                            Type     = permisisonType,
                            Selected = selected || role.Name == Administrator.Name
                        });
                    }

                    result.PagePermissions.Add(pagePermission);
                }

                return(result);
            }
        }
Beispiel #9
0
        public PageAdminModel GetAdminModel(Guid siteId, Guid pageId)
        {
            using (var context = _dbContextFactory.Create())
            {
                var page = context.Pages
                           .Include(x => x.PageLocalisations)
                           .Include(x => x.PagePermissions)
                           .FirstOrDefault(x => x.SiteId == siteId && x.Id == pageId && x.Status != PageStatus.Deleted);

                if (page == null)
                {
                    return(null);
                }

                var result = new PageAdminModel
                {
                    Id              = page.Id,
                    Name            = page.Name,
                    Status          = page.Status,
                    Url             = page.Url,
                    Title           = page.Title,
                    MetaDescription = page.MetaDescription,
                    MetaKeywords    = page.MetaKeywords
                };

                var languages = context.Languages
                                .Where(x => x.SiteId == siteId && x.Status != LanguageStatus.Deleted)
                                .OrderBy(x => x.SortOrder)
                                .ToList();

                foreach (var language in languages)
                {
                    var url             = string.Empty;
                    var title           = string.Empty;
                    var metaDescription = string.Empty;
                    var metaKeywords    = string.Empty;

                    var existingLocalisation = page
                                               .PageLocalisations
                                               .FirstOrDefault(x => x.LanguageId == language.Id);

                    if (existingLocalisation != null)
                    {
                        url             = existingLocalisation.Url;
                        title           = existingLocalisation.Title;
                        metaDescription = existingLocalisation.MetaDescription;
                        metaKeywords    = existingLocalisation.MetaKeywords;
                    }

                    result.PageLocalisations.Add(new PageLocalisationAdminModel
                    {
                        PageId          = page.Id,
                        LanguageId      = language.Id,
                        LanguageName    = language.Name,
                        LanguageStatus  = language.Status,
                        Url             = url,
                        Title           = title,
                        MetaDescription = metaDescription,
                        MetaKeywords    = metaKeywords
                    });
                }

                foreach (var role in _roleService.GetAllRoles())
                {
                    var pagePermission = new PagePermissionModel
                    {
                        RoleId   = role.Id,
                        RoleName = role.Name,
                        Disabled = role.Name == DefaultRoleNames.Administrator
                    };

                    foreach (PermissionType permisisonType in Enum.GetValues(typeof(PermissionType)))
                    {
                        bool selected = page.PagePermissions
                                        .FirstOrDefault(x => x.RoleId == role.Id && x.Type == permisisonType) != null;

                        pagePermission.PagePermissionTypes.Add(new PagePermissionTypeModel
                        {
                            Type     = permisisonType,
                            Selected = selected || role.Name == DefaultRoleNames.Administrator
                        });
                    }

                    result.PagePermissions.Add(pagePermission);
                }

                return(result);
            }
        }
Beispiel #10
0
        public PageAdminModel GetAdminModel(Guid siteId, Guid pageId)
        {
            var page = _pageRepository.GetById(siteId, pageId);

            if (page == null)
            {
                return(null);
            }

            var result = new PageAdminModel
            {
                Id              = page.Id,
                Name            = page.Name,
                Status          = page.Status,
                Url             = page.Url,
                Title           = page.Title,
                MetaDescription = page.MetaDescription,
                MetaKeywords    = page.MetaKeywords
            };

            var languages = _languageRepository.GetAll(siteId);

            foreach (var language in languages)
            {
                var url             = string.Empty;
                var title           = string.Empty;
                var metaDescription = string.Empty;
                var metaKeywords    = string.Empty;

                var existingLocalisation = page
                                           .PageLocalisations
                                           .FirstOrDefault(x => x.LanguageId == language.Id);

                if (existingLocalisation != null)
                {
                    url             = existingLocalisation.Url;
                    title           = existingLocalisation.Title;
                    metaDescription = existingLocalisation.MetaDescription;
                    metaKeywords    = existingLocalisation.MetaKeywords;
                }

                result.PageLocalisations.Add(new PageLocalisationAdminModel
                {
                    PageId          = page.Id,
                    LanguageId      = language.Id,
                    LanguageName    = language.Name,
                    LanguageStatus  = language.Status,
                    Url             = url,
                    Title           = title,
                    MetaDescription = metaDescription,
                    MetaKeywords    = metaKeywords
                });
            }

            foreach (var role in _roleService.GetAllRoles())
            {
                var pagePermission = new PagePermissionModel
                {
                    RoleId   = role.Id,
                    RoleName = role.Name
                };

                foreach (PermissionType permisisonType in Enum.GetValues(typeof(PermissionType)))
                {
                    bool selected = page.PagePermissions
                                    .FirstOrDefault(x => x.RoleId == role.Id && x.Type == permisisonType) != null;

                    pagePermission.PagePermissionTypes.Add(new PagePermissionTypeModel
                    {
                        Type     = permisisonType,
                        Selected = selected
                    });
                }

                result.PagePermissions.Add(pagePermission);
            }

            return(result);
        }