public static IEnumerable<UserRolePermission> GetAllActions() { List<UserRolePermission> actionList = new List<UserRolePermission>(); Assembly assembly = Assembly.Load("SoftwareGrid"); IEnumerable<String> areas = assembly.GetTypes() .Select(t => t.Namespace) .Where(t => t != null && t.Contains("Areas")) .Distinct(); int index = 1; foreach (String area in areas) { IEnumerable<Type> controllerTypes = from t in assembly.GetExportedTypes() where typeof(IController).IsAssignableFrom(t) && t.Namespace == area select t; foreach (var controllerType in controllerTypes) { List<string> actionNames = new List<string>(); MethodInfo[] mi = controllerType.GetMethods(); foreach (MethodInfo m in mi) { if (m.IsPublic) { object[] userAuthorizeAttribute = m.GetCustomAttributes(typeof(UserAuthorize), true); if (typeof(ActionResult).IsAssignableFrom(m.ReturnParameter.ParameterType) && userAuthorizeAttribute != null && userAuthorizeAttribute.Length>0) { UserRolePermission userRolePermission = new UserRolePermission(); userRolePermission.AreaName = area.Substring("Areas.", ".Controllers"); userRolePermission.ControllerName = controllerType.Name.Replace("Controller", string.Empty); userRolePermission.ActionName = m.Name; userRolePermission.UserRoleID = index; index++; actionNames.Add(m.Name); actionList.Add(userRolePermission); } } } } } return actionList; }
public void InsertOrUpdate(string userrolepermission,List<UserRole> userRoleList) { //2+AppBuilder+AppMenu+Index,3+AppBuilder+AppMenu+Index,4+AppBuilder+AppMenu+Index,2+AppBuilder+AppMenu+Search,1+OM+OrganizationAddressCategory+Create,2+OM+OrganizationAddressCategory+Create,3+OM+OrganizationAddressCategory+Create,4+OM+OrganizationAddressCategory+Create,5+OM+OrganizationAddressCategory+Create if (userRoleList != null && userrolepermission.IsNotNullOrEmpty()) { string[] userRolePermissions = userrolepermission.ToStringArray(','); if (userRolePermissions != null) { foreach (string currentUserRolePermission in userRolePermissions) { string[] userRolePermissionParams = currentUserRolePermission.ToStringArray('+'); if (userRolePermissionParams.Length == 4 && userRolePermissionParams[0].ToInteger() < userRoleList.Count) { UserRole userRole= userRoleList[userRolePermissionParams[0].ToInteger()]; string areaName = userRolePermissionParams[1]; string controllerName = userRolePermissionParams[2]; string actionName = userRolePermissionParams[3]; UserRolePermission permission = context.UserRolePermission.SingleOrDefault(item => item.AreaName.ToLower() == areaName && item.ControllerName.ToLower() == controllerName && item.ActionName.ToLower() == actionName && item.UserRoleID == userRole.UserRoleID); if (permission == null) { permission = new UserRolePermission() { AreaName = areaName, ControllerName = controllerName, ActionName = actionName, UserRoleID = userRole.UserRoleID }; context.UserRolePermission.Add(permission); } } } } } }
public void InsertOrUpdate(UserRolePermission userrolepermission) { if (userrolepermission.UserRolePermissionId == default(int)) { // New entity context.UserRolePermission.Add(userrolepermission); } else { // Existing entity context.Entry(userrolepermission).State = EntityState.Modified; } }
public ActionResult Create() { UserRolePermission userrolepermission = new UserRolePermission(); ViewBag.PossibleUserRoles = userroleRepository.All; return View(userrolepermission); }
public ViewResult Search(UserRolePermission searchUserRolePermission) { if (searchUserRolePermission != null) { } return View("Index", userrolepermissionRepository.AllIncluding(userrolepermission => userrolepermission.UserRole)); }
public ActionResult Edit(UserRolePermission userrolepermission) { if (ModelState.IsValid) { userrolepermissionRepository.InsertOrUpdate(userrolepermission); userrolepermissionRepository.Save(); return RedirectToAction("Index"); } else { ViewBag.PossibleUserRoles = userroleRepository.All; return View(userrolepermission); } }