Esempio n. 1
0
        public RESPONSE_MODEL GetRolePermission(int menu_id, int role_id)
        {
            try
            {
                var IsHeaderMenu      = ctx.APPLICATION_MENUS.Where(o => o.MENU_ID == menu_id).Select(o => o.PARENT_ID);
                var IsPermissionExist = ctx.ROLE_PERMISSION_ALLOWED.Any(o => o.ROLE_ID == role_id && o.MENU_ID == menu_id);

                if (IsPermissionExist)
                {
                    var permission = ctx.ROLE_PERMISSION_ALLOWED.Where(o => o.ROLE_ID == role_id && o.MENU_ID == menu_id).FirstOrDefault();
                    ROLE_PERMISSION_ALLOWED_MODEL data = new ROLE_PERMISSION_ALLOWED_MODEL();
                    data.ROLE_PERMISSION_ID = permission.ROLE_PERMISSION_ID;
                    data.MENU_NAME          = ctx.APPLICATION_MENUS.Where(o => o.MENU_ID == menu_id).Select(x => x.MENU_NAME).FirstOrDefault();
                    data.MENU_LEVEL         = ctx.APPLICATION_MENUS.Where(o => o.MENU_ID == menu_id).Select(o => o.MENU_LEVEL).FirstOrDefault();
                    data.ROLE_ID            = permission.ROLE_ID;
                    data.MENU_ID            = permission.MENU_ID;
                    data.GRANT_PERMISSION   = permission.GRANT_PERMISSION;
                    data.VIEW_PERMISSION    = permission.VIEW_PERMISSION;
                    data.INSERT_PERMISSION  = permission.INSERT_PERMISSION;
                    data.UPDATE_PERMISSION  = permission.UPDATE_PERMISSION;
                    data.DELETE_PERMISSION  = permission.DELETE_PERMISSION;
                    resp.OUTPUT_DATA        = data;
                }
                else
                {
                    ROLE_PERMISSION_ALLOWED_MODEL data = new ROLE_PERMISSION_ALLOWED_MODEL();
                    data.MENU_NAME         = ctx.APPLICATION_MENUS.Where(o => o.MENU_ID == menu_id).Select(x => x.MENU_NAME).FirstOrDefault();
                    data.MENU_LEVEL        = ctx.APPLICATION_MENUS.Where(o => o.MENU_ID == menu_id).Select(o => o.MENU_LEVEL).FirstOrDefault();
                    data.ROLE_ID           = role_id;
                    data.MENU_ID           = menu_id;
                    data.GRANT_PERMISSION  = "N";
                    data.VIEW_PERMISSION   = "N";
                    data.INSERT_PERMISSION = "N";
                    data.UPDATE_PERMISSION = "N";
                    data.DELETE_PERMISSION = "N";
                    resp.OUTPUT_DATA       = data;
                }
            }
            catch (Exception ex)
            {
                resp = ErrorCollection(ex);
            }
            return(resp);
        }
Esempio n. 2
0
        public RESPONSE_MODEL GetRolePermissionByApplication(int application_id, int role_id)
        {
            try
            {
                var listRole = new List <ROLE_PERMISSION_ALLOWED_MODEL>();
                var listMenu = ctx.APPLICATION_MENUS.Where(o => o.APP_ID == application_id).OrderBy(o => o.MENU_LEVEL).ThenBy(o => o.MENU_SEQ).ToList();

                foreach (var data in listMenu)
                {
                    var IsRolePermissionExist = ctx.ROLE_PERMISSION_ALLOWED
                                                .Any(o => o.MENU_ID == data.MENU_ID && o.ROLE_ID == role_id);
                    if (IsRolePermissionExist)
                    {
                        var rolePermission = ctx.ROLE_PERMISSION_ALLOWED
                                             .Where(o => o.MENU_ID == data.MENU_ID && o.ROLE_ID == role_id).FirstOrDefault();

                        ROLE_PERMISSION_ALLOWED_MODEL obj = new ROLE_PERMISSION_ALLOWED_MODEL();
                        obj.MENU_NAME          = data.MENU_NAME;
                        obj.ROLE_PERMISSION_ID = rolePermission.ROLE_PERMISSION_ID;
                        obj.PARENT_ID          = data.PARENT_ID;
                        obj.MENU_ID            = rolePermission.MENU_ID;
                        obj.ROLE_ID            = rolePermission.ROLE_ID;
                        obj.GRANT_PERMISSION   = rolePermission.GRANT_PERMISSION;
                        obj.VIEW_PERMISSION    = rolePermission.VIEW_PERMISSION;
                        obj.INSERT_PERMISSION  = rolePermission.INSERT_PERMISSION;
                        obj.UPDATE_PERMISSION  = rolePermission.UPDATE_PERMISSION;
                        obj.DELETE_PERMISSION  = rolePermission.DELETE_PERMISSION;
                        listRole.Add(obj);
                    }
                    else
                    {
                        ROLE_PERMISSION_ALLOWED_MODEL obj = new ROLE_PERMISSION_ALLOWED_MODEL();
                        obj.MENU_ID           = data.MENU_ID;
                        obj.MENU_NAME         = data.MENU_NAME;
                        obj.PARENT_ID         = data.PARENT_ID;
                        obj.ROLE_ID           = role_id;
                        obj.GRANT_PERMISSION  = "N";
                        obj.VIEW_PERMISSION   = "N";
                        obj.INSERT_PERMISSION = "N";
                        obj.UPDATE_PERMISSION = "N";
                        obj.DELETE_PERMISSION = "N";
                        listRole.Add(obj);
                    }
                }
                var minParentID = listRole.Where(o => o.PARENT_ID == null).Select(o => o.MENU_ID).FirstOrDefault();
                List <ROLE_PERMISSION_ALLOWED_MODEL> ListRoleOrder = new List <ROLE_PERMISSION_ALLOWED_MODEL>();

                listRole.ForEach(o =>
                {
                    if (o.PARENT_ID == minParentID)
                    {
                        o.VIEW_PERMISSION   = null;
                        o.INSERT_PERMISSION = null;
                        o.UPDATE_PERMISSION = null;
                        o.DELETE_PERMISSION = null;

                        ListRoleOrder.Add(o);
                        ListRoleOrder.AddRange(listRole.Where(p => p.PARENT_ID == o.MENU_ID));
                    }
                });

                container.LIST_ROLE_PERMISSION_ALLOWED_MODEL = ListRoleOrder;
                resp.OUTPUT_DATA = container;
            }
            catch (Exception ex)
            {
                resp = ErrorCollection(ex);
            }
            return(resp);
        }