コード例 #1
0
ファイル: MiscUtility.cs プロジェクト: absdk/RslSDK
        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;
        }
コード例 #2
0
 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);
                     }
                 }
             }
         }
     }
 }
コード例 #3
0
 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;
     }
 }
コード例 #4
0
 public ActionResult Create()
 {
     UserRolePermission userrolepermission = new UserRolePermission();
     ViewBag.PossibleUserRoles = userroleRepository.All;
     return View(userrolepermission);
 }
コード例 #5
0
 public ViewResult Search(UserRolePermission searchUserRolePermission)
 {
     if (searchUserRolePermission != null)
     {
     }
     return View("Index", userrolepermissionRepository.AllIncluding(userrolepermission => userrolepermission.UserRole));
 }
コード例 #6
0
 public ActionResult Edit(UserRolePermission userrolepermission)
 {
     if (ModelState.IsValid)
     {
         userrolepermissionRepository.InsertOrUpdate(userrolepermission);
         userrolepermissionRepository.Save();
         return RedirectToAction("Index");
     }
     else
     {
         ViewBag.PossibleUserRoles = userroleRepository.All;
         return View(userrolepermission);
     }
 }