Ejemplo n.º 1
0
        public bool HasPrivilege(params string[] privileges)
        {
            var @value = true;

            foreach (var privilegeId in privileges)
            {
                var hasPrivilege = UserPrivilegeMap != null && UserPrivilegeMap.Any(e => e.PrivilegeId == privilegeId);
                if (!hasPrivilege)
                {
                    hasPrivilege = UserRoleMap != null && UserRoleMap.Any(e => e.Role.RolePrivilegeMap != null && e.Role.RolePrivilegeMap.Any(e2 => e2.PrivilegeId == privilegeId));
                    if (!hasPrivilege)
                    {
                        hasPrivilege = UserGroupMap != null && UserGroupMap.Any(e => e.Group.GroupPrivilegeMap != null && e.Group.GroupPrivilegeMap.Any(e2 => e2.PrivilegeId == privilegeId));
                        if (!hasPrivilege)
                        {
                            hasPrivilege = UserGroupMap != null && UserGroupMap.Any(e => e.Group.GroupRoleMap != null && e.Group.GroupRoleMap.Any(e2 => e2.Role.RolePrivilegeMap != null && e2.Role.RolePrivilegeMap.Any(e3 => e3.PrivilegeId == privilegeId)));
                            if (!hasPrivilege)
                            {
                                @value = false;
                                break;
                            }
                        }
                    }
                }
            }
            return(@value);
        }